COUNT通过多链连接

时间:2013-03-05 08:43:43

标签: mysql sql join count

我的数据库中有这个层次结构(从最低到最高):

用户=> Dept =>面积=>公司

现在我需要创建一个显示所有公司的表(有关它们直接从公司表中获取的信息),但HTML表中的最后一列我想要用户数。我知道我需要将这些表连接在一起并且可能将表连接到自身,但是我该怎么做呢?

这些表中的每一个都有一个链接到其父表的列(Company ofc除外)。

1 个答案:

答案 0 :(得分:1)

JOIN表:

SELECT
  c.companyId, 
  c.CompanyName,
  IFNULL(COUNT(u.userID), 0) AS 'Number Of Users'
FROM Company    AS c
LEFT JOIN Area  AS a ON c.CompanyID = a.CompanyID
LEFT JOIN Dept  AS d ON a.DeptId    = d.DeptId
LEFT JOIN users AS u ON D.UserId    = u.UserId
GROUP BY c.companyId, 
         c.CompanyName;

请注意: LEFT JOIN IFNULL将为您提供其他表中没有匹配行的公司;在这种情况下计数为零