首頁  >  問答  >  主體

sql,java 跪求大神指點

為什麼我用企業編號和使用者編號查詢全部部門及部門下的人數,回傳的資料只有一條,
資料庫表設計是:使用者表和企業表是一對一的,企業表和部門表是一對多的,
以下是我寫的sql:

SELECT count(c.id) AS userCount,
b.company_id AS companyId,
b.`name` AS `name`

FROM

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;

某草草某草草2644 天前731

全部回覆(1)我來回復

  • 为情所困

    为情所困2017-06-28 09:24:29

    由於你沒有說明,企業表和部門表的表名是什麼,而且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;

    回覆
    0
  • 取消回覆