sql, java. Ich bitte um Rat.
某草草
某草草 2017-06-28 09:22:29
0
1
792

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;

某草草
某草草

Antworte allen(1)
为情所困

由于你没有说明,企业表和部门表的表名是什么,而且SQL中只出现了一个和企业或部门有关的表,我只能猜测它是部门表。
基于这个假设,来说下你的SQL。你的SQL有以下几个问题:

  1. 你的WHERE 1 = 1是不需要的

  2. 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;
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage