我有几个表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
答案 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