首先聲明,當你看到這篇文章時,或許看不懂,因為這是我自己通過自己理解而寫的筆記、
兩個參照表table1和table2都存在id字段,但是table1、table2中其余字段不同.
如果table1.id存在有1,2,3而table2.id中有1,3,4三個值
使用各種連接的語法,
select * from table1
left join table2 on table1.id=table2.id;
紫色字段可以填充 left join(左連接),right join(右連接),full join(全連接),join(內連接).
交叉連接
select * from table1 cross join table2;
根據不同的鏈接,產生出不同的結果。
左連接,參照為table1,
那么結果則是參照table1.id給出。也就是1,2,3而table2.id并沒有對應值為3的參照,其相應用null填充。
右連接參照table2.id給出,而用法與左連接類似。此處不再贅述。
全連接。要參照table1.id和table2.id給出,會產生4個字段結果。table1存在而table2不存在的字段用null填充。反之亦然。多說一句。可以說全鏈接是左、右連接的并。
內連接產生兩個字段,即左、右連接的交。只產生table1.id=table2.id的結果。可以認為就是select * from table1 table2 where table1.id = table2.id;
交叉連接產生的結果比較多,有9個結果,即table1.id。size()×table2.size()。(此處不規范,但是自己做的筆記能明白就可以了)。
即笛卡爾積。