sql更多表连接

mysql> use xscj;
Database changed
mysql> select xs.学号, xs.姓名, xs.专业名, kc.课程名, xs_kc.成绩
    -> from xs
    -> left join xs_kc on xs.学号 = xs_kc.学号
    -> left  join kc on xs_kc.课程号 = kc.课程号
    -> where  xs.专业名 = '计算机'
    -> order by xs.学号;
+--------+--------+--------+----------------+------+
| 学号      | 姓名       | 专业名     | 课程名              | 成绩    |
+--------+--------+--------+----------------+------+
| 081101 | 王林       | 计算机       | 计算机基础               |   80 |
| 081101 | 王林       | 计算机       | 程序设计与语言               |   78 |
| 081102 | 程明       | 计算机       | 计算机基础               |   91 |
| 081102 | 程明       | 计算机       | 计算机网络               |   80 |
| 081102 | 程明       | 计算机       | 软件工程               |   76 |
| 081103 | 王燕       | 计算机       | NULL           | NULL |
| 081104 | 韦平平    | 计算机       | 计算机网络               |   65 |
+--------+--------+--------+----------------+------+
7 rows in set (0.00 sec)

mysql> select xs.学号, xs.姓名,kc.课程名, xs_kc.成绩
    -> from xs
    -> left join xs_kc on xs.学号 = xs_kc.学号
    -> left  join kc on xs_kc.课程号 = kc.课程号
    -> where  kc.课程名 = '计算机基础'
    -> order by xs.学号;
+--------+--------+------------+------+
| 学号      | 姓名       | 课程名          | 成绩    |
+--------+--------+------------+------+
| 081101 | 王林       | 计算机基础           |   80 |
| 081102 | 程明       | 计算机基础           |   91 |
| 081201 | 王敏       | 计算机基础           |   76 |
| 081203 | 严红      | 计算机基础           |   85 |
| 081303 | 孙祥欣       | 计算机基础           |   63 |
| 081304 | 孙研       | 计算机基础           |   65 |
+--------+--------+------------+------+
6 rows in set (0.00 sec)

mysql> select kc.课程名,avg(成绩) as '平均分'
    -> from xs_kc
    -> left join kc  on kc.课程号 =xs_kc.课程号
    -> where kc.课程名 = '计算机基础';
+------------+---------+
| 课程名          | 平均分       |
+------------+---------+
| 计算机基础           | 76.6667 |
+------------+---------+
1 row in set (0.00 sec)

mysql> use yggl;
Database changed
mysql> select  e.编号 as 工号,e.姓名,d.部门名称,ifnull(s.收入,'无薪资记 录') as 收入
    -> from employees  e
    -> left join departments d
    -> on e.部门号 =d.部门号
    -> left join salary s
    -> on e.编号 =s.编号;
+--------+--------+------------+---------+
| 工号       | 姓名       | 部门名称           | 收入        |
+--------+--------+------------+---------+
| 000001 | 王林       | 人力资源部          | 2100.8  |
| 010008 | 伍容华      | 财务部           | 1582.62 |
| 020010 | 王向容       | 财务部           | 2860    |
| 020018 | 李丽       | 财务部           | 2347.68 |
| 102201 | 刘明       | 市场部          | 2569.88 |
| 102208 | 朱俊     | 市场部          | 1980    |
| 108991 | 钟敏       | 经理办公室         | 3259.98 |
| 111006 | 张石兵      | 市场部          | 1987.01 |
| 210678 | 林涛       | 经理办公室         | 2240    |
| 302566 | 李玉珉       | 研发部          | 2980.7  |
| 308759 | 叶凡      | 研发部          | 2531.98 |
| 504209 | 陈林琳       | 研发部          | 2066.15 |
+--------+--------+------------+---------+
12 rows in set (0.00 sec)

mysql> select  e.编号 as 工号,e.姓名,d.部门名称,s.收入
    -> from employees  e
    -> left join departments d
    -> on e.部门号 =d.部门号
    -> left join salary s
    -> on e.编号 =s.编号;
+--------+--------+------------+---------+
| 工号       | 姓名       | 部门名称           | 收入        |
+--------+--------+------------+---------+
| 000001 | 王林       | 人力资源部          |  2100.8 |
| 010008 | 伍容华      | 财务部           | 1582.62 |
| 020010 | 王向容       | 财务部           |    2860 |
| 020018 | 李丽       | 财务部           | 2347.68 |
| 102201 | 刘明       | 市场部          | 2569.88 |
| 102208 | 朱俊     | 市场部          |    1980 |
| 108991 | 钟敏       | 经理办公室         | 3259.98 |
| 111006 | 张石兵      | 市场部          | 1987.01 |
| 210678 | 林涛       | 经理办公室         |    2240 |
| 302566 | 李玉珉       | 研发部          |  2980.7 |
| 308759 | 叶凡      | 研发部          | 2531.98 |
| 504209 | 陈林琳       | 研发部          | 2066.15 |
+--------+--------+------------+---------+
12 rows in set (0.00 sec)

mysql> select group_concat(e.姓名 separator', ') as 名单,d.部门名称,sum(s.收入) AS 总收入
    -> from  employees e
    -> join departments d on e.部门号 = d.部门号
    -> join salary s on e.编号 = s.编号
    -> where d.部门名称 = '市场部'
    -> group by d.部门名称;
+--------------------+----------+-------------------+
| 名单                   | 部门名称         | 总收入                  |
+--------------------+----------+-------------------+
| 刘明, 朱俊, 张石兵            | 市场部        | 6536.889892578125 |
+--------------------+----------+-------------------+
1 row in set (0.00 sec)

mysql>  select e.编号 as 工号,e.姓名,e.学历,d.部门名称,s.收入
    ->     from employees e
    ->    join departments d on e.部门号 = d.部门号
    ->     join salary s on e.编号 = s.编号
    ->    where s.收入 > 2000 and e.学历 = '本科';
+--------+--------+------+----------+---------+
| 工号       | 姓名       | 学历    | 部门名称         | 收入        |
+--------+--------+------+----------+---------+
| 302566 | 李玉珉       | 本科     | 研发部        |  2980.7 |
| 308759 | 叶凡      | 本科     | 研发部        | 2531.98 |
| 102201 | 刘明       | 本科     | 市场部        | 2569.88 |
+--------+--------+------+----------+---------+
3 rows in set (0.00 sec)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值