最近找工作複習mysql,涉及到sql的幾種join
a表id
name
1zhang2li
3wang
4zhao
b表id
name
2zhao
4qian5wu
7zhang
1.inner join:
是一種內連線,也是一種普通的連線,只是將a和b中所指定屬性中的相同的元素選擇出來(其中又分為等值連線和不等值連線,如下例就是等值連線)
select * from a inner join b on a.name = b.name
a.id
a.name
b,id
b,name
1zhang
7zhang
4zhao
2zhao
也就相當於是選擇兩者的交集
2.natrual join 自然連線
自然連線不需要選擇屬性,他要求兩個關係中進行比較的分量必須是相同屬性組,並且在結果中把重複的屬性列去掉(而等值連線就不需要去掉重複的額屬性列)
select * from a natrual join b
a.id
name
b.id
1zhang74
zhao
23.left outer join , right outer join, full outer join
三種中結果會出現null,也都需要指定屬性
4.cross join就是普通的笛卡爾積
3和4可以參考difference between inner join & full join
mysql: ** inner join、left join、right join、full outer join、union、union all的區別
SQL的幾種連線
1.內連線 結果 從左表中取出每一條記錄,去右表中與所有的記錄進行匹配 匹配必須是某個條件是左表中與右表中相同,才會保留結果,否則不保留 1.等值連線 在連線條件中使用等於號 運算子比較被連線列的列值,其查詢結果中列出被連線表中的所有列,包括其中的重複列。2.不等值連線 在連線條件使用除等於運算子以...
SQL中的幾種連線
1 內連線inner join select a.name,b.name from table1 a inner join table2 b on a.id b.id 返回table1和table2表的交集部分 2 左連線left join select from table1 a left joi...
SQL表連線的幾種方式
一 關係代數 合併資料集合的理論基礎是關係代數,它是由e.f.codd於1970年提出的。在關係代數的形式化語言中,用表 或者資料集合表示關係或者實體,用行表示元組,用列表示屬性。關係代數包含以下8個關係運算子 1.選取 返回滿足指定條件的行。2.投影 從資料集合中返回指定的列。3.笛卡爾積 是關係...