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;

在这里插入图片描述

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