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 - 为什么where条件中or加索引不起作用?2. mysql - php 如何網址中出現該頁標題?3. 关于Mysql数据表行转列4. mysql - 用PHPEXCEL将excel文件导入数据库数据5000+条,本地数据库正常,线上只导入15条,没有报错,哪里的问题?5. jdbc - 关于错误:java.sql.SQLException: 未调用 ResultSet.next的问题6. mysql - mongo如何对一个collection进行顺序上的调整呢?7. python - 时不时出现 (2013, ’Lost connection to MySQL server during query’)8. mysql配置没问题,但不显示中文;9. mysql - 如果一条数据在数据表中没用了,是删除它还是设置字段表示它已删除,那种方式更好?10. mysql - 数据库JOIN查询
