[英]SQL Inner join where record does not exist
我目前有2個表,這些表是使用INNER JOIN子句查詢的。 我第一個標記為Departments的表非常簡單,僅包含3個字段-deptID,deptName和companyID。 我的第二張表標記為departmentMemberships甚至更簡單,僅包含2個字段-deptID和employeeID。 我當前的SQL語句查詢這兩個表,並返回所有deptID,deptName和每個部門的員工人數。 如果上述部門中沒有任何員工,我的查詢將不會返回部門。 這是我當前的查詢。
`SELECT departments.deptID, departments.deptName,
COUNT(departmentMemberships.deptID) AS employeeCount
FROM departmentMemberships
INNER JOIN departments
ON departmentMemberships.deptID = departments.deptID
WHERE departments.companyID = 1
GROUP BY departments.deptID, departments.deptName
ORDER BY departments.deptName ASC;`
對TSQL缺乏經驗,但是如何更改此查詢以返回所有部門,包括沒有注冊員工的部門?
非常感謝你
按照書面說明,將您的INNER JOIN
更改為RIGHT OUTER JOIN
。 但是我自己更喜歡LEFT JOIN
; 更容易遵循。 即:
SELECT departments.deptID
, departments.deptName
, COUNT(departmentMemberships.deptID) AS employeeCount
FROM departments
LEFT OUTER JOIN departmentMemberships
ON departmentMemberships.deptID = departments.deptID
WHERE departments.companyID = 1
GROUP BY departments.deptID, departments.deptName
ORDER BY departments.deptName ASC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.