zoukankan      html  css  js  c++  java
  • SQL-关联查询

    SQL-关联查询

     

    T_A A表 T_B B标,id为表与表相关联的字段`
    创建相关表结构

    CREATE TABLE Table_B( id INT(2), serNum VARCHAR(10) ); 
    CREATE TABLE Table_A( id INT(2), serNum VARCHAR(10) ); 
    INSERT INTO table_a (id, serNum)
     VALUES (1,'A000101'),(2,'A000102'),(3,'A000103'),(5,'A000104'),(8,'A000105'),(4,'A000106');
    INSERT INTO table_b (id, serNum) 
     VALUES (1,'B000201'),(2,'B000202'),(3,'B000203'),(6,'B000204'),(7,'B000205'),(9,'B000206');
    
    


    Table_A
    id serNum


     1  A000100  
     2  A000102  
     3  A000103  
     5  A000104  
     8  A000105  
     4  A000106  
    

    Table_B
    id serNum


     1  B000201  
     2  B000202  
     3  B000203  
     6  B000204  
     7  B000205  
     9  B000206  
    

    1. inner join 内连接查询

    SELECT a.*,b.*
    FROM table_a a
    INNER JOIN table_b b
    ON a.id=b.id
    

    查询结果:
    id serNum id serNum


     1  A000100       1  B000201  
     2  A000102       2  B000202  
     3  A000103       3  B000203  
    

    2. left join 左关联查询

    以左表作为基础表去关联右表,查询的结果为左表的子集

    SELECT a.*,b.*
    FROM table_a a
    LEFT JOIN table_b b
    ON a.id=b.id
    

    查询结果:
    id serNum id serNum


     1  A000100       1  B000201  
     2  A000102       2  B000202  
     3  A000103       3  B000203  
     5  A000104  (NULL)  (NULL)   
     8  A000105  (NULL)  (NULL)   
     4  A000106  (NULL)  (NULL)  
    

    3.right join 右关联查询

    以右表作为基础表去关联左表,查询的结果为右表的子集

    SELECT a.*,b.*
    FROM table_a a
    RIGHT JOIN table_b b
    ON a.id=b.id
    

    查询结果:
    id serNum id serNum


     1  A000100       1  B000201  
     2  A000102       2  B000202  
     3  A000103       3  B000203  
    

    (NULL) (NULL) 6 B000204
    (NULL) (NULL) 7 B000205
    (NULL) (NULL) 9 B000206

    4.左连接-内连接

    取左表的部分集合,但又不存在右表中

    SELECT a.*,b.*
    FROM table_a a
    LEFT JOIN table_b b
    ON a.id=b.id
    WHERE b.id IS NULL
    

    查询结果:
    id serNum id serNum


     5  A000104  (NULL)  (NULL)  
     8  A000105  (NULL)  (NULL)  
     4  A000106  (NULL)  (NULL)
    

    5. 右连接-内连接

    取有表的部分数据,但又不存在左表中

    SELECT a.*,b.*
    FROM table_a a
    RIGHT JOIN table_b b
    ON a.id=b.id
    WHERE a.id IS NULL
    

    查询结果:
    id serNum id serNum


    (NULL) (NULL) 6 B000204
    (NULL) (NULL) 7 B000205
    (NULL) (NULL) 9 B000206

  • 相关阅读:
    我爬了《流浪地球》十万个短评得出以下结论
    Activiti开发案例之代码生成工作流图片
    Activiti开发案例之activiti-app工作流导出图片
    用MySQL语法建 一个学生表,包括学生姓名、性别、年龄、班级信息。
    事务是什么,以及事务四个特性
    精选30道Java笔试题解答
    父类和子类的构造方法的调用顺序
    Java的修饰符
    volatile修饰符
    Java中普通代码块,构造代码块,静态代码块区别及代码示例
  • 原文地址:https://www.cnblogs.com/happyyangyanghappy/p/14436207.html
Copyright © 2011-2022 走看看