繁体   English   中英

来自一个表的SQL COUNT,其中来自另一个表的条件为真

[英]SQL COUNT from one table where condition from another table is true

好的,假设我有两个表“ TableA”和“ TableB”。 在表AI中,列“ C”,在表BI中,列“ D”和“ E”。

TableA包含很多行,这些行可以在C列中包含相同的值。TableB包含很多行,但是D列必须是唯一的(这是自动递增的编号)。 TableB的E列在不同的行中也可以包含相同的值。 同样,C列和D列将包含相同的数字。

示例表

TableA

ID     C
----------
1      1
2      1
3      2

TableB

D    E
----------
1    1
2    0
3    0

现在,我要做的是计算出C列中TableA中的所有行,我已经弄清楚该怎么做。 但是,我还希望它仅给我C的计数,其中D中的等效值也具有E“ 1”。

因此,我已经尝试过了,但是失败了,我无法想到自己在做什么或如何解决。 搜寻COUNT只让我得到处理一张桌子的结果。

在我的示例中,我希望它返回到COUNT C,其中ID匹配在TableB列D中,其中E = 1(因此,其中TableB列D = 1),并将其作为计数返回,所以我希望它返回给我(或达到此目的的内容):

c COUNT(*)下降1 2

SELECT TableA.C, COUNT(*) FROM TableA, TableB WHERE TableB.E = 1 GROUP BY TableA.C ORDER BY COUNT(*) DESC

如果那有意义的话...

您不将列中的两个表连接在一起

SELECT a.C, COUNT(*) FROM TableA a JOIN TableB b ON (C = D)
WHERE E GROUP BY a.C
ORDER BY COUNT(*) DESC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM