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.idAND c.user_id =55AND c. STATUS = 1WHERE
1 = 1
AND b.company_id =10043GROUP BY
b.id
LIMIT 0, 10;
問題解答
回答1:由于你沒有說明,企業表和部門表的表名是什么,而且SQL中只出現了一個和企業或部門有關的表,我只能猜測它是部門表。基于這個假設,來說下你的SQL。你的SQL有以下幾個問題:
你的WHERE 1 = 1是不需要的
LEFT JOIN里的ON語句,是用來限定左聯上來的這個表的數據的,而不是用來限定結果數據的,要限定結果數據的話得用WHERE子句
修改后的SQL如下:
SELECT COUNT(c.id) userCount, b.company_id companyId, b.name nameFROM company_branch bLEFT JOIN company_personnel_file c ON c.branch_id = b.idWHERE c.user_id = 55 AND c.STATUS = 1 AND b.company_id = 10043GROUP BY b.idLIMIT 0, 10;
相關文章:
1. mysql 查詢身份證號字段值有效的數據2. java - 無法執行該操作,因為鏈接服務器 "***" 的 OLE DB 訪問接口 "SQLNCLI" 無法啟動分布式事務。解決方法?3. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處4. Navicat for mysql 中以json格式儲存的數據存在大量反斜杠,如何去除?5. mysql中 when then 的優化6. mysql order by 子查詢 后面的結果 如何 也顯示在結果集7. mysql-配置 - MySQL錯誤,時不時自動掛掉,無法啟動8. node.js - mysql如何通過knex查詢今天和七天內的匯總數據9. mysql - 關于時間的入庫問題,大神們你們存數據庫的時間是取本地的時間,還是取utc的時間?10. mysql怎么多表刪除啊?
