私のデータベースにはこの階層があります(最低から最高まで):
ユーザー=>部門=>エリア=>会社
次に、すべての会社を表示するテーブルを作成する必要があります(会社のテーブルから直接取得した会社に関する情報もあります)が、HTMLテーブルの最後の列をユーザー数にします。テーブルを結合し、おそらくテーブルをそれ自体に結合する必要があることはわかっていますが、これを行うにはどうすればよいですか?
これらの各テーブルには、その親テーブルにリンクする列があります(Company ofcを除く)。
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
withIFNULL
は、他のテーブルに一致する行がない会社を表示します。この場合はカウントゼロ