zoukankan      html  css  js  c++  java
  • 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

    注释:INNER JOIN与JOIN是相同的。

    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

  • 相关阅读:
    numpy 基础 —— np.linalg
    图像旋转后显示不完全
    opencv ---getRotationMatrix2D函数
    PS1--cannot be loaded because the execution of scripts is disabled on this system
    打开jnlp Faild to validate certificate, the application will not be executed.
    BATCH(BAT批处理命令语法)
    oracle vm virtualbox 如何让虚拟机可以上网
    merge 实现
    Windows batch,echo到文件不成功,只打印出ECHO is on.
    python2.7.6 , setuptools pip install, 报错:UnicodeDecodeError:'ascii' codec can't decode byte
  • 原文地址:https://www.cnblogs.com/cwind/p/11062440.html
Copyright © 2011-2022 走看看