MYSQL-加入几张桌子

时间:2019-01-14 07:54:30

标签: mysql sql

我有几个表Employee和Organization。我需要一个即使组织没有任何员工也可以获取数据的查询。另外,我想对组织名称进行排序。这是我的代码:

body {
  background-color: #333;
}

canvas {
  background-color: #4d4d4d;
  margin: auto;
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 750px;
  height: 500px;
}

最关键的事情不是向组织显示零员工。有什么建议吗?

已编辑 这是我的期望:

<canvas id="canvas"></canvas>

顺便说一句,我明白了:

select count(*) as count,dept.NAME 
from ORGANIZATION AS dept
left join EMPLOYEE AS emp on emp.DEPT_ID = dept.ID 
group by dept.NAME
ORDER BY count DESC, dept.Name ASC

2 个答案:

答案 0 :(得分:2)

当您使用LEFT JOIN并想获取COUNT表中的JOIN项时,您需要COUNT { 1}}表,否则您将得到不正确的结果。将查询更改为此可以解决问题:

JOIN

答案 1 :(得分:0)

使用左连接是正确的
(这是在关系不匹配时也检索行的联接)
但是当您使用左联接时,请不要对左联接所涉及的行使用where条件,否则它们将作为内部联接起作用

select count(*) as count,dept.NAME 
from ORGANIZATION AS dept
left join EMPLOYEE AS emp on emp.DEPT_ID = dept.ID 
group by dept.NAME
ORDER BY count DESC, dept.Name ASC