如何在不丢失SQL中的任何行的情况下合并两个表?

时间:2016-12-14 16:53:05

标签: mysql sql merge

我正在尝试合并两个表。一个student表和一个department表,但我不想丢失任何没有学生的部门。当我使用NATURAL JOIN时,我丢失了它们,因为主键是DEPT_ID而某些部门没有学生,所以他们没有出现在合并表中。我试过看其他合并表的方法到目前为止我还没有运气。

我的尝试:

SELECT DEPT_NAME, 
COUNT(DISTINCT STUDENT_ID) AS NumberOfStudentsInDepartment
FROM Students RIGHT JOIN Departments
GROUP BY DEPT_NAME
ORDER BY 2 DESC, 1 ASC;

1 个答案:

答案 0 :(得分:5)

使用正确加入

Select * from Students S RIGHT JOIN Department D on D.Dept_Id = S.Dept_id

或左加入

Select * from Department D LEFT JOIN Students S on D.Dept_Id = S.Dept_id

Learn more about how joins work here