0

好的,假设我有两个表,“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 中的等效值也具有“1”的 E。

所以,我试过这个,但它失败了,我想不出我做错了什么或如何解决它。谷歌搜索 COUNT 只会让我得到处理一张桌子的结果。

在我的示例中,我希望它计数 C 其中与 TableB 列 D 中 E = 1 匹配的 ID 号(因此,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

如果那有意义的话...

4

1 回答 1

1

你不加入列上的两个表

SELECT a.C, COUNT(*) FROM TableA a JOIN TableB b ON (C = D)
WHERE E GROUP BY a.C
ORDER BY COUNT(*) DESC
于 2013-05-19T00:41:19.653 回答