簡體   English   中英

不存在記錄的SQL內部聯接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM