sql多表连接查询

mysql>  select xs1.学号,xs1.姓名,xs_kc.课程号,xs_kc.成绩
    ->   from xs1
    ->   left join xs_kc on xs1.学号 =xs_kc.学号;
+--------+--------+--------+------+
| 学号      | 姓名       | 课程号     | 成绩    |
+--------+--------+--------+------+
| 081101 | 王林       | 101    |   80 |
| 081101 | 王林       | 102    |   78 |
| 081101 | 王林       | 206    |   76 |
| 081102 | 程明       | 102    |   78 |
| 081102 | 程明       | 206    |   78 |
| 081103 | 王燕       | 101    |   62 |
| 081103 | 王燕       | 102    |   70 |
| 081103 | 王燕       | 206    |   81 |
| 081104 | 韦平平    | 101    |   90 |
| 081104 | 韦平平    | 102    |   84 |
| 081104 | 韦平平    | 206    |   65 |
+--------+--------+--------+------+
11 rows in set (0.00 sec)

mysql> select xs1.学号,xs1.姓名,xs_kc.课程号,xs_kc.成绩
    -> from  xs1
    -> join xs_kc on xs1.学号 = xs_kc.学号
    -> where  xs_kc.课程号 ='101'  and xs_kc.成绩 >=80;
+--------+--------+--------+------+
| 学号      | 姓名       | 课程号     | 成绩    |
+--------+--------+--------+------+
| 081101 | 王林       | 101    |   80 |
| 081104 | 韦平平    | 101    |   90 |
+--------+--------+--------+------+
2 rows in set (0.00 sec)

mysql> select kc.课程号,kc.课程名,xs_kc.学号,xs_kc.成绩
    -> from kc
    -> left join xs_kc on kc.课程号 = xs_kc.课程号;
+--------+----------------+--------+------+
| 课程号     | 课程名              | 学号      | 成绩    |
+--------+----------------+--------+------+
| 101    | 计算机基础               | 081101 |   80 |
| 101    | 计算机基础               | 081103 |   62 |
| 101    | 计算机基础               | 081104 |   90 |
| 101    | 计算机基础               | 081106 |   65 |
| 101    | 计算机基础               | 081107 |   78 |
| 101    | 计算机基础               | 081108 |   85 |
| 101    | 计算机基础               | 081109 |   66 |
| 101    | 计算机基础               | 081110 |   95 |
| 101    | 计算机基础               | 081111 |   91 |
| 101    | 计算机基础               | 081113 |   63 |
| 101    | 计算机基础               | 081201 |   80 |
| 101    | 计算机基础               | 081202 |   65 |
| 101    | 计算机基础               | 081203 |   87 |
| 101    | 计算机基础               | 081204 |   91 |
| 101    | 计算机基础               | 081210 |   76 |
| 101    | 计算机基础               | 081216 |   81 |
| 101    | 计算机基础               | 081218 |   70 |
| 101    | 计算机基础               | 081220 |   82 |
| 101    | 计算机基础               | 081221 |   76 |
| 101    | 计算机基础               | 081241 |   90 |
| 102    | 程序设计与语言               | 081101 |   78 |
| 102    | 程序设计与语言               | 081102 |   78 |
| 102    | 程序设计与语言               | 081103 |   70 |
| 102    | 程序设计与语言               | 081104 |   84 |
| 102    | 程序设计与语言               | 081106 |   71 |
| 102    | 程序设计与语言               | 081107 |   80 |
| 102    | 程序设计与语言               | 081108 |   64 |
| 102    | 程序设计与语言               | 081109 |   83 |
| 102    | 程序设计与语言               | 081110 |   90 |
| 102    | 程序设计与语言               | 081111 |   70 |
| 102    | 程序设计与语言               | 081113 |   79 |
| 206    | 离散数学             | 081101 |   76 |
| 206    | 离散数学             | 081102 |   78 |
| 206    | 离散数学             | 081103 |   81 |
| 206    | 离散数学             | 081104 |   65 |
| 206    | 离散数学             | 081106 |   80 |
| 206    | 离散数学             | 081107 |   68 |
| 206    | 离散数学             | 081108 |   87 |
| 206    | 离散数学             | 081109 |   70 |
| 206    | 离散数学             | 081110 |   89 |
| 206    | 离散数学             | 081111 |   76 |
| 206    | 离散数学             | 081113 |   60 |
| 208    | 数据结构             | NULL   | NULL |
| 209    | 操作系统             | NULL   | NULL |
| 210    | 计算机原理              | NULL   | NULL |
| 212    | 数据库原理             | NULL   | NULL |
| 301    | 计算机网络               | NULL   | NULL |
| 302    | 软件工程               | NULL   | NULL |
+--------+----------------+--------+------+
48 rows in set (0.00 sec)

mysql> select employees.编号,姓名,(salary.收入-salary.支出) as 工资
    -> from employees
    -> join salary on employees.编号 =salary.编号;
+--------+--------+--------------------+
| 编号       | 姓名       | 工资                   |
+--------+--------+--------------------+
| 000001 | 王林       | 1977.7100524902344 |
| 010008 | 伍容华      | 1494.5899963378906 |
| 020010 | 王向容       |               2662 |
| 020018 | 李丽       |  2167.679931640625 |
| 102201 | 刘明       | 2384.2298889160156 |
| 102208 | 朱俊     |               1880 |
| 108991 | 钟敏       |  2978.459991455078 |
| 111006 | 张石兵      | 2268.0999298095703 |
| 210678 | 林涛       |               2119 |
| 302566 | 李玉珉       |  2770.499954223633 |
| 308759 | 叶凡      | 2332.8999786376953 |
| 504209 | 陈林琳       |   1958.14990234375 |
+--------+--------+--------------------+
12 rows in set (0.00 sec)

mysql> select employees.编号,姓名,departments.部门号
    -> from employees
    -> inner join departments on employees.部门号 =departments.部门号
    -> where employees.姓名  ='王林';
+--------+------+--------+
| 编号       | 姓名     | 部门号      |
+--------+------+--------+
| 000001 | 王林     |      2 |
+--------+------+--------+
1 row in set (0.00 sec)

mysql> select employees.编号,姓名,departments.部门名称
    -> from employees
    -> inner join departments on employees.部门号 =departments.部门号
    -> where employees.姓名  ='王林';
+--------+------+------------+
| 编号       | 姓名     | 部门名称           |
+--------+------+------------+
| 000001 | 王林     | 人力资源部          |
+--------+------+------------+
1 row in set (0.00 sec)

mysql> select employees.编号,employees.部门号,departments.部门名称
    -> from employees
    -> inner join departments on employees.部门号 =departments.部门号
    -> where employees.部门号 != 5;
+--------+--------+------------+
| 编号       | 部门号      | 部门名称           |
+--------+--------+------------+
| 010008 | 1      | 财务部           |
| 020010 | 1      | 财务部           |
| 020018 | 1      | 财务部           |
| 000001 | 2      | 人力资源部          |
| 108991 | 3      | 经理办公室         |
| 210678 | 3      | 经理办公室         |
| 302566 | 4      | 研发部          |
| 303466 | 4      | 研发部          |
| 308759 | 4      | 研发部          |
| 504209 | 4      | 研发部          |
+--------+--------+------------+
10 rows in set (0.00 sec)

mysql> select s1.编号 AS 编号1, s2.编号 AS 编号2, s1.收入
    -> from salary s1
    -> inner join salary s2 ON s1.收入 = s2.收入 and s1.编号 < s2.编号
    -> ;
+--------+--------+---------+
| 编号1      | 编号2      | 收入        |
+--------+--------+---------+
| 020018 | 111006 | 2347.68 |
+--------+--------+---------+
1 row in set (0.00 sec)

mysql> select employees.编号,employees.姓名
    -> from salary
    ->  right join employees  on employees.编号 =salary.编号
    -> where 收入 is null;
+--------+--------+
| 编号       | 姓名       |
+--------+--------+
| 303466 | 刘大宝       |
+--------+--------+
1 row in set (0.00 sec)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值