【发布时间】:2014-07-23 19:32:07
【问题描述】:
我有以下 SQL 语句:
SELECT
O.id,
O.name,
(SELECT
COUNT(U.id)
FROM
User U
WHERE
U.organization_id = O.id) AS num_users
FROM
Organization O
用户表和组织表被称为organization_id的东西绑定
当我执行此语句时,我得到以下(坏)结果:
id | name | num_users
------------------------
1 | MyOrg | 2
2 | MyOrg | 0
3 | testOrg | 0
谁能告诉我如何得到一个只会产生 1 行 pr 的结果。组织?
请注意,我已尝试使用 DISTINCT 但没有得到更好的结果
【问题讨论】:
-
DISTINCT将无法工作,因为id编号是唯一的。 -
SELECT DISTINCT O.name, (SELECT COUNT(U.id) FROM User U WHERE U.organization_id = O.id) AS num_users FROM Organization O 也不起作用
-
@Marc Rasmussen:所以您的表称为组织,每个组织都有一个 ID,但是两个组织实际上只是一个组织,以防它们的名称匹配?这是你说的吗???
-
您似乎拥有多个名为“MyOrg”的组织。结果对我来说似乎很好,但是您想如何处理这种情况?请出示您想要的结果。
标签: mysql sql join count left-join