Warum verwende ich die Unternehmensnummer und die Benutzernummer, um alle Abteilungen und die Anzahl der Personen in der Abteilung abzufragen, und es wird nur ein Datenelement zurückgegeben?
Das Design der Datenbanktabelle ist: Die Benutzertabelle und die Unternehmenstabelle sind eins. zu eins, und die Unternehmenstabelle und die Abteilungstabelle sind eins zu viele Ja,
Das Folgende ist die SQL, die ich geschrieben habe:
SELECT count(c.id) AS userCount,
b.company_id AS companyId,
b.`name` AS `name`
VON
company_branch b
LEFT JOIN company_personnel_file c ON c.branch_id = b.id
AND c.user_id =55
AND c. STATUS = 1
WHERE
1 = 1
AND b.company_id =10043
GROUP BY
b.id
LIMIT 0,
10;
由于你没有说明,企业表和部门表的表名是什么,而且SQL中只出现了一个和企业或部门有关的表,我只能猜测它是部门表。
基于这个假设,来说下你的SQL。你的SQL有以下几个问题:
你的
WHERE 1 = 1
是不需要的LEFT JOIN
里的ON
语句,是用来限定左联上来的这个表的数据的,而不是用来限定结果数据的,要限定结果数据的话得用WHERE
子句修改后的SQL如下: