在MySQL中,DISTINCT
關鍵字用于從查詢結果中刪除重復的行。當您在多表查詢中使用DISTINCT
時,它將從所有選定的表中刪除重復的行,而不僅僅是單個表中的重復行。
以下是一個使用DISTINCT
在多表查詢中的示例:
假設我們有兩個表:employees
和departments
,它們的結構如下:
employees表
id | name | department_id |
---|---|---|
1 | Alice | 1 |
2 | Bob | 2 |
3 | Carol | 1 |
4 | Dave | 3 |
departments表
id | name |
---|---|
1 | HR |
2 | Finance |
3 | IT |
現在,我們想要查詢每個部門的唯一員工數量。我們可以使用以下SQL查詢:
SELECT DISTINCT d.name AS department_name, COUNT(e.id) AS employee_count
FROM employees e
JOIN departments d ON e.department_id = d.id
GROUP BY d.name;
這個查詢首先通過JOIN
子句將employees
表和departments
表連接在一起,然后使用GROUP BY
子句按部門名稱對結果進行分組。DISTINCT
關鍵字在這里用于確保每個部門的名稱只出現一次,同時COUNT(e.id)
函數計算每個部門的員工數量。
查詢結果將如下所示:
+---------------+----------------+
| department_name | employee_count |
+---------------+----------------+
| Finance | 2 |
| HR | 2 |
| IT | 1 |
+---------------+----------------+
可以看到,DISTINCT
關鍵字成功地刪除了重復的部門名稱,同時計算了每個部門的員工數量。