好的,我们假设我有两个表,“TableA”和“TableB”。在表A中,我有一列“C”,在表B中,我有一列“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,其中IDB在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
如果这有任何意义......
答案 0 :(得分:1)
您没有加入列
上的两个表格SELECT a.C, COUNT(*) FROM TableA a JOIN TableB b ON (C = D)
WHERE E GROUP BY a.C
ORDER BY COUNT(*) DESC