溫馨提示×

MYSQL DISTINCT在多表查詢中的應(yīng)用

小樊
81
2024-10-10 00:22:38
欄目: 云計(jì)算

在MySQL中,DISTINCT關(guān)鍵字用于從查詢結(jié)果中刪除重復(fù)的行。當(dāng)您在多表查詢中使用DISTINCT時,它將從所有選定的表中刪除重復(fù)的行,而不僅僅是單個表中的重復(fù)行。

以下是一個使用DISTINCT在多表查詢中的示例:

假設(shè)我們有兩個表:employeesdepartments,它們的結(jié)構(gòu)如下:

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

現(xiàn)在,我們想要查詢每個部門的唯一員工數(shù)量。我們可以使用以下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子句按部門名稱對結(jié)果進(jìn)行分組。DISTINCT關(guān)鍵字在這里用于確保每個部門的名稱只出現(xiàn)一次,同時COUNT(e.id)函數(shù)計(jì)算每個部門的員工數(shù)量。

查詢結(jié)果將如下所示:

+---------------+----------------+
| department_name | employee_count |
+---------------+----------------+
| Finance        |              2 |
| HR            |              2 |
| IT            |              1 |
+---------------+----------------+

可以看到,DISTINCT關(guān)鍵字成功地刪除了重復(fù)的部門名稱,同時計(jì)算了每個部門的員工數(shù)量。

0