sql,java 跪求大神指點(diǎn)
問(wèn)題描述
為什么我用企業(yè)編號(hào)和用戶編號(hào)查詢?nèi)坎块T(mén)及部門(mén)下的人數(shù),返回的數(shù)據(jù)只有一條,數(shù)據(jù)庫(kù)表設(shè)計(jì)是:用戶表和企業(yè)表是一對(duì)一的,企業(yè)表和部門(mén)表是一對(duì)多的,以下是我寫(xiě)的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;
問(wèn)題解答
回答1:由于你沒(méi)有說(shuō)明,企業(yè)表和部門(mén)表的表名是什么,而且SQL中只出現(xiàn)了一個(gè)和企業(yè)或部門(mén)有關(guān)的表,我只能猜測(cè)它是部門(mén)表。基于這個(gè)假設(shè),來(lái)說(shuō)下你的SQL。你的SQL有以下幾個(gè)問(wèn)題:
你的WHERE 1 = 1是不需要的
LEFT JOIN里的ON語(yǔ)句,是用來(lái)限定左聯(lián)上來(lái)的這個(gè)表的數(shù)據(jù)的,而不是用來(lái)限定結(jié)果數(shù)據(jù)的,要限定結(jié)果數(shù)據(jù)的話得用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;
相關(guān)文章:
1. mysql - select查詢多個(gè)紀(jì)錄的條件怎么寫(xiě)2. 備份恢復(fù) - php備份mysql數(shù)據(jù)庫(kù)方案有哪些?3. mysql主從 - 請(qǐng)教下mysql 主動(dòng)-被動(dòng)模式的雙主配置 和 主從配置在應(yīng)用上有什么區(qū)別?4. linux - 編譯安裝mysql 5.6.235. php - sql查詢結(jié)果合并的問(wèn)題6. mysql服務(wù)無(wú)法啟動(dòng)1067錯(cuò)誤,誰(shuí)知道正確的解決方法?7. mysql - mybatis查詢返回map的問(wèn)題8. python-mysqldb - 這樣結(jié)構(gòu)的mysql表,如何快速u(mài)pdate9. sql語(yǔ)句 - mysql中關(guān)聯(lián)表查詢問(wèn)題10. mysql 查詢身份證號(hào)字段值有效的數(shù)據(jù)
