Sql的多表連接關系有:內連接、外連接和交叉連接。
先建立兩個用於演示的表:
TB_Characters:
Id | Character |
1 | 內向 |
2 | 外向 |
3 | 中性性格 |
TB_Colors:
Id | Color |
1 | 綠色 |
2 | 紅色 |
4 | 藍色 |
一、內連接:
內連接(JOIN 或 INNER JOIN):內連接取交集
示意圖:
SELECT * FROM tb_characters INNER JOIN tb_colors ON tb_characters.ID = tb_colors.ID;
結果:
二、外連接:
外連接可分為:左連接、右連接、完全外連接。
1、左連接(LEFT JOIN):
示意圖:
SELECT * FROM tb_characters LEFT JOIN tb_colors ON tb_characters.ID = tb_colors.ID;
結果:
2、右連接(RIGHT JOIN):
示意圖:
SELECT * FROM tb_characters RIGHT JOIN tb_colors ON tb_characters.ID = tb_colors.ID;
結果:
3、完全外連接:
示意圖:
select * from tb_characters LEFT JOIN tb_colors on tb_characters.ID=tb_colors.ID UNION select * from tb_characters RIGHT JOIN tb_colors on tb_characters.ID=tb_colors.ID
結果:
三、交叉連接( CROSS JOIN ):
交叉連接產生連接所涉及的表的笛卡爾積。
SELECT * FROM tb_characters CROSS JOIN tb_colors;
結果:
補充:
1、如下可獲取內連接結果:
SELECT * FROM tb_characters,tb_colors WHERE tb_characters.ID = tb_colors.ID;
2、如下可獲取交叉連接結果:
SELECT * FROM tb_characters,tb_colors;