我的数据库中有这个层次结构(从最低到最高):
用户=> Dept =>面积=>公司
现在我需要创建一个显示所有公司的表(有关它们直接从公司表中获取的信息),但HTML表中的最后一列我想要用户数。我知道我需要将这些表连接在一起并且可能将表连接到自身,但是我该怎么做呢?
这些表中的每一个都有一个链接到其父表的列(Company ofc除外)。
答案 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
将为您提供其他表中没有匹配行的公司;在这种情况下计数为零