INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN、INNER JOIN、CROSS JOIN

1.內连接 又叫等值连接,只返回两个表中连接字段相等的行

SELECT *
  FROM TABLE_NAME A
       INNER JOIN TABLE_NAME B
          ON A.ID = B.ID   

2.左外連接 又叫左连接,意思是包含左边表所有记录,右边所有匹配的记录,如果没有则用空补齐。换句话说就是,列出左边表全部的,及右边表符合条件的,不符合条件的以空值代替

SELECT *
  FROM TABLE_NAME A
       LEFT JOIN TABLE_NAME B
          ON A.ID = B.ID   

3.右外連接 又叫右链接,意思是包括右边表所有记录,匹配左边表的记录,如果没有则以空补齐。换句话说,列出右边全部的,及左边符合条件的,不符合条件的则以空值代替

SELECT *     
  FROM TABLE_NAME A
       RIGHT JOIN TABLE_NAME B
          ON A.ID = B.ID  

4.全外連接 包含左、右俩个表的所有行,不管另一表中是否存在与其匹配的行。不符合条件的,则以空值代替

SELECT *
  FROM TABLE_NAME A
       FULL JOIN TABLE_NAME B
          ON A.ID = B.ID  

5.笛卡尔积 cross就是笛卡尔乘积连接,不需要任何关联条件,实现M*N的结果集。实际操作中,很少会用到,但要注意在开发中做表之间关联时应避免产生笛卡尔集,否则数据量过大,导致内存溢出

SELECT *
  FROM TABLE_NAME A
       CROSS JOIN TABLE_NAME B

猜你喜欢

转载自blog.csdn.net/m0_46533551/article/details/134311793