如何计算表a的每个数据的数据

问题描述 投票:0回答:2

我有三张桌子ABC

一张桌子:

ID,名称

B表:

ID,A_ID,日期

C表:

id,b_id,type(值为0/1)

我想打印所有A.name,A.id和C.countingdata通过计算C数据,其中C.type = 1使用B表,其中有一个表ID

结果如下所示:

A.id   A.name       C.countingdata
1      abc          4
2      vfd          2
3      fdg          0
laravel model controller laravel-5.6
2个回答
0
投票
  • 那么,你可以先内部加入BC,做group by并使用C.countingdata获得count()。另一个与B本身在子查询上的连接,以容纳结果集中的a_id
  • 现在,您可以在A和上面的子查询之间进行内部联接以获得结果。

SQL:

select A.id, A.name, derived.countingData
from A
inner join (
                select B.id as b_id,B.a_id,sub_data.countingData
                from B 
                inner join (
                                select B.id,count(B.id) as countingData
                                from B 
                                inner join C
                                on B.id = C.b_id
                                where C.type=1
                                group by B.id
                            ) sub_data
                on B.id = sub_data.id
            ) derived
on A.id = derived.a_id

-1
投票

您可以找到如下查询:

Select 
    A.id
    ,A.name
    ,COUNT(C.id)
    FROM A 
    JOIN B ON A.id = B.a_id
    JOIN C ON B.id = C.b_id ANd C.type = 1
    GROUP BY 
    A.id
    ,A.name
© www.soinside.com 2019 - 2024. All rights reserved.