zoukankan      html  css  js  c++  java
  • 【MYSQL】JOIN

    MYSQL

    JOIN

    mysql> 
    mysql> desc College;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | cname | varchar(50) | NO   | PRI | NULL    |       |
    | state | varchar(20) | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    
    mysql> desc Student;
    +--------+-------------+------+-----+---------+-------+
    | Field  | Type        | Null | Key | Default | Extra |
    +--------+-------------+------+-----+---------+-------+
    | sname  | varchar(50) | NO   | PRI | NULL    |       |
    | school | varchar(50) | YES  |     | NULL    |       |
    +--------+-------------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    
    mysql> select * from College;
    +----------+----------+
    | cname    | state    |
    +----------+----------+
    | swj      | sichuan  |
    | nanchang | jiangsu  |
    | nannong  | jiangsu  |
    | beida    | beijing  |
    | jiaoda   | shanghai |
    +----------+----------+
    5 rows in set (0.00 sec)
    
    mysql> select * from Student;
    +-------+----------+
    | sname | school   |
    +-------+----------+
    | bai   | swj      |
    | li    | nanchang |
    | wang  | beida    |
    | he    | masheng  |
    | zhao  | zaodao   |
    +-------+----------+
    5 rows in set (0.00 sec)
    
    mysql> 
    • 内联结

    mysql> SELECT * from College JOIN  Student on College.cname = Student.school;
    +----------+---------+-------+----------+
    | cname    | state   | sname | school   |
    +----------+---------+-------+----------+
    | swj      | sichuan | bai   | swj      |
    | nanchang | jiangsu | li    | nanchang |
    | beida    | beijing | wang  | beida    |
    +----------+---------+-------+----------+
    3 rows in set (0.00 sec)
    
    mysql> SELECT * from College INNER JOIN  Student on College.cname = Student.school;
    +----------+---------+-------+----------+
    | cname    | state   | sname | school   |
    +----------+---------+-------+----------+
    | swj      | sichuan | bai   | swj      |
    | nanchang | jiangsu | li    | nanchang |
    | beida    | beijing | wang  | beida    |
    +----------+---------+-------+----------+
    3 rows in set (0.00 sec)
    
    mysql> select * from College,Student  where College.cname = Student.school;
    +----------+---------+-------+----------+
    | cname    | state   | sname | school   |
    +----------+---------+-------+----------+
    | swj      | sichuan | bai   | swj      |
    | nanchang | jiangsu | li    | nanchang |
    | beida    | beijing | wang  | beida    |
    +----------+---------+-------+----------+
    3 rows in set (0.00 sec)
    
    mysql> SELECT * from College  STRAIGHT_JOIN  Student on College.cname = Student.school;
    +----------+---------+-------+----------+
    | cname    | state   | sname | school   |
    +----------+---------+-------+----------+
    | swj      | sichuan | bai   | swj      |
    | nanchang | jiangsu | li    | nanchang |
    | beida    | beijing | wang  | beida    |
    +----------+---------+-------+----------+
    3 rows in set (0.00 sec)
    • 外连接
    1. left join

    mysql> SELECT * from College LEFT JOIN  Student on College.cname = Student.school;
    +----------+----------+-------+----------+
    | cname    | state    | sname | school   |
    +----------+----------+-------+----------+
    | swj      | sichuan  | bai   | swj      |
    | nanchang | jiangsu  | li    | nanchang |
    | nannong  | jiangsu  | NULL  | NULL     |
    | beida    | beijing  | wang  | beida    |
    | jiaoda   | shanghai | NULL  | NULL     |
    +----------+----------+-------+----------+
    5 rows in set (0.00 sec)

         2. left join where 

     

    mysql> SELECT * from College LEFT JOIN  Student on College.cname = Student.school where Student.sname is NULL;
    +---------+----------+-------+--------+
    | cname   | state    | sname | school |
    +---------+----------+-------+--------+
    | nannong | jiangsu  | NULL  | NULL   |
    | jiaoda  | shanghai | NULL  | NULL   |
    +---------+----------+-------+--------+
    2 rows in set (0.00 sec)

         2.right join

    mysql> SELECT * from College RIGHT JOIN  Student on College.cname = Student.school;
    +----------+---------+-------+----------+
    | cname    | state   | sname | school   |
    +----------+---------+-------+----------+
    | swj      | sichuan | bai   | swj      |
    | nanchang | jiangsu | li    | nanchang |
    | beida    | beijing | wang  | beida    |
    | NULL     | NULL    | he    | masheng  |
    | NULL     | NULL    | zhao  | zaodao   |
    +----------+---------+-------+----------+
    5 rows in set (0.00 sec)

     3.  模拟full out join

    mysql>  SELECT * from College LEFT JOIN  Student on College.cname = Student.school union all SELECT * from College RIGHT JOIN  Student on College.cname = Student.school;
    +----------+----------+-------+----------+
    | cname    | state    | sname | school   |
    +----------+----------+-------+----------+
    | swj      | sichuan  | bai   | swj      |
    | nanchang | jiangsu  | li    | nanchang |
    | nannong  | jiangsu  | NULL  | NULL     |
    | beida    | beijing  | wang  | beida    |
    | jiaoda   | shanghai | NULL  | NULL     |
    | swj      | sichuan  | bai   | swj      |
    | nanchang | jiangsu  | li    | nanchang |
    | beida    | beijing  | wang  | beida    |
    | NULL     | NULL     | he    | masheng  |
    | NULL     | NULL     | zhao  | zaodao   |
    | NULL     | NULL     | nu    | NULL     |
    +----------+----------+-------+----------+
    11 rows in set (0.00 sec)
    •  文视图展示

  • 相关阅读:
    Feign调用文件上传服务接口样例
    Feign调用文件下载服务接口样例
    使用Spring Security的Basic Auth认证后Postman的POST请求不成功的可能原因
    Spring Boot应用的Controller返回的集合类数据是XML格式的可能原因
    Eureka Server增加Spring Security后的服务端和客户端配置
    Spring Data支持的关键字
    JPA(Hibernate)代理类的hibernateLazyInitializer属性系列化异常
    Spring Boot中fastjson的@JSONField(format = "yyyy-MM-dd HH:mm:ss")失效可能原因
    使用Java代码配置MyBatis Generator
    CentOS8.1中搭建Nexus3服务器
  • 原文地址:https://www.cnblogs.com/AlexBai326/p/6246764.html
Copyright © 2011-2022 走看看