• 技术文章 >数据库 >MySQL

    mysql右外连接查询的介绍

    小妮浅浅小妮浅浅2021-11-17 15:17:54原创4675

    1、以join右表为主表,显示右表的所有数据,根据条件查询join左表的数据。如果满意,显示。如果不满意,显示在null。

    2、可以理解为在内部连接的基础上,确保右表的所有数据都显示。

    语法

    1

    select 字段 from a right [outer] join b on 条件

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    #左连接

    #查询所有部门信息以及该部门员工信息

    SELECT did,dname,eid,ename FROM t_department d LEFT JOIN t_employee e

    ON d.did=e.dept_id;

      

    SELECT did,dname,eid,ename FROM t_employee e LEFT JOIN t_department d

    ON d.did=e.dept_id;

      

    SELECT did,dname,eid,ename FROM t_department d RIGHT JOIN t_employee e

    ON d.did=e.dept_id;

      

    UPDATE t_employee SET dept_id=NULL where eid=5;

      

    SELECT did,dname,eid,ename FROM t_department d LEFT JOIN t_employee e

    ON d.did=e.dept_id;

    WHERE e.dept_id IS NULL;

    #查询部门信息,保留没有员工的部门信息

    SELECT did,dname,eid,ename FROM t_department d RIGHT JOIN t_employee e

    ON d.did=e.dept_id;

    WHERE e.dept_id IS NULL;

      

    SELECT did,dname,eid,ename FROM t_employee e LEFT JOIN t_department d

    ON d.did=e.dept_id;

    WHERE e.dept_id IS NULL;

    #查询所有员工信息,以及员工的部门信息

    SELECT eid,ename,did,dname FROM t_employee e LEFT JOIN t_department d

    ON e.dept_id=d.did;

      

    SELECT eid,ename,did,dname FROM t_department d LEFT JOIN t_employee e

    ON e.dept_id=d.did;

      

    #查询员工信息,仅保留没有分配部门的员工

    SELECT eid,ename,did,dname FROM t_employee e LEFT JOIN t_department d

    ON e.dept_id=d.did

    WHERE e.dept_id IS NULL;

    #查询员工信息,不保留没有分配部门的员工

    SELECT eid,ename,did,dname FROM t_employee e LEFT JOIN t_department d

    ON e.dept_id=d.did

    WHERE e.dept_id IS NOT NULL;

      

    SELECT id,ename,tid,dname FROM student_info s LEFT JOIN student_test t

    ON s.id_id=t.tid

    WHERE t.tid IS NOT NULL;

      

    SELECT * FROM student;

    SELECT * FROM souce;

    #分析 左右外连接

    #显示所有学生的测试信息

    SELECT st.s_id,name,C,Java FROM student st LEFT JOIN souce s

    ON st.s_id=s.s_id;

      

    #显示参加考试的学生的测试信息

    SELECT st.s_id,name,C,Java FROM student st RIGHT JOIN souce s

    ON st.s_id=s.s_id;

    以上就是mysql右外连接查询的介绍,希望对大家有所帮助。更多mysql学习指路:Mysql

    推荐操作系统:windows7系统、mysql5.8、DELL G3电脑

    专题推荐:mysql 右外连接
    上一篇:mysql左外连接查询是什么 下一篇:mysql union实现全外连接查询

    相关文章推荐

    • mysql分表和分区的区别• mysql水平分表是什么• Mysql如何实现事务隔离• Mysql长事务有什么影响• mysql事务启动的方式• mysql使用union的注意点• mysql外键约束的作用• mysql外键约束有什么要求• mysql有哪些外键约束等级• mysql一对多关系如何理解• mysql内连接查询是什么• mysql左外连接查询是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网