- 按多字段分組查詢
按照同一個分公司、同一個部門查詢員工的平均工資:
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;