欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL学习笔记(6)

程序员文章站 2022-03-08 17:52:57
...
  • 按多字段分组查询
    按照同一个分公司、同一个部门查询员工的平均工资:
USE test;
SHOW TABLES;
SELECT
	AVG(salary) 平均工资,department 部门,branch_company 分公司
FROM
	employee
GROUP BY
	department,branch_company;

MySQL学习笔记(6)
MySQL学习笔记(6)

  • 添加排序的分组查询
    对上述得到的平均工资降序排序:
USE test;
SHOW TABLES;
SELECT
	AVG(salary) 平均工资,department 部门,branch_company 分公司
FROM
	employee
GROUP BY
	department,branch_company
ORDER BY
	平均工资
DESC;

MySQL学习笔记(6)

  • 连接查询——多个表之间的字段值相互匹配
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;

MySQL学习笔记(6)
显然这样做是分别拿第一个表中的每一个name字段与第二个表中的所有job字段相匹配。
正确代码:

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

MySQL学习笔记(6)