Heim > Fragen und Antworten > Hauptteil
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;
为情所困2017-06-28 09:24:29
由于你没有说明,企业表和部门表的表名是什么,而且SQL中只出现了一个和企业或部门有关的表,我只能猜测它是部门表。
基于这个假设,来说下你的SQL。你的SQL有以下几个问题:
你的WHERE 1 = 1
是不需要的
LEFT JOIN
里的ON
语句,是用来限定左联上来的这个表的数据的,而不是用来限定结果数据的,要限定结果数据的话得用WHERE
子句
修改后的SQL如下:
SELECT
COUNT(c.id) userCount,
b.company_id companyId,
b.name name
FROM
company_branch b
LEFT JOIN
company_personnel_file c ON c.branch_id = b.id
WHERE
c.user_id = 55 AND
c.STATUS = 1 AND
b.company_id = 10043
GROUP BY
b.id
LIMIT 0, 10;