MySQL學習筆記(6)

  • 按多字段分組查詢
    按照同一個分公司、同一個部門查詢員工的平均工資:
USE test;
SHOW TABLES;
SELECT
	AVG(salary) 平均工資,department 部門,branch_company 分公司
FROM
	employee
GROUP BY
	department,branch_company;

在這裏插入圖片描述
在這裏插入圖片描述

  • 添加排序的分組查詢
    對上述得到的平均工資降序排序:
USE test;
SHOW TABLES;
SELECT
	AVG(salary) 平均工資,department 部門,branch_company 分公司
FROM
	employee
GROUP BY
	department,branch_company
ORDER BY
	平均工資
DESC;

在這裏插入圖片描述

  • 連接查詢——多個表之間的字段值相互匹配
USE test;
SHOW TABLES;
SELECT
	`name`,job
FROM
	employee_job,job
WHERE
	employee_job.job_id=job.job_id;

表名:employee_job

name job_id
Justin 2
Nancy 2
Tom 1
Lee 3
Thomas 1
Douglas 4

表名:job

jod_id job
1 職工
2 主管
3 部門經理
4 總監

例如上述兩個表中,我們要將第一個表中員工的工作職務編號與第二個表中的職務相匹配,常規方法易導致笛卡爾集錯誤。

USE test;
SHOW TABLES;
SELECT
	`name`,job
FROM
	employee_job,job;

在這裏插入圖片描述
顯然這樣做是分別拿第一個表中的每一個name字段與第二個表中的所有job字段相匹配。
正確代碼:

USE test;
SHOW TABLES;
SELECT
	`name`,job
FROM
	employee_job,job
WHERE
	employee_job.job_id=job.job_id;

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章