1

私のデータベースにはこの階層があります(最低から最高まで):

ユーザー=>部門=>エリア=>会社

次に、すべての会社を表示するテーブルを作成する必要があります(会社のテーブルから直接取得した会社に関する情報もあります)が、HTMLテーブルの最後の列をユーザー数にします。テーブルを結合し、おそらくテーブルをそれ自体に結合する必要があることはわかっていますが、これを行うにはどうすればよいですか?

これらの各テーブルには、その親テーブルにリンクする列があります(Company ofcを除く)。

4

1 に答える 1

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 withIFNULLは、他のテーブルに一致する行がない会社を表示します。この場合はカウントゼロ

于 2013-03-05T08:47:28.977 に答える