MySQL中的多表連線

2021-06-19 18:08:07 字數 1481 閱讀 4582

現有表r,s如下:

笛卡爾積

select * from r,s;

結果:注:不需要任何條件。結果為兩張表函式相乘(3x3=9)。

連線型別

分為三種:交叉連線、內連線、外連線。

交叉連線 cross join

沒有where子句的交叉連線將產生連線表的笛卡爾積。

select * from r cross join s;

結果:和笛卡爾積一樣,如上圖。

select * from r cross join s where r.c = s.c;

結果:內連線

內連線分為三種:自然連線、等值連線、非等值連線。

自然連線 natural join:在連線條件中使用等於=運算子比較被連線列的列值,但刪除連線表中重複列。

select * from r natural join s;

結果:等值連線:使用等於=比較連線列的列值,在查詢結果中列出接連表中的所有列,包括其中的重複列。

select * from r  join s where r.c = s.c;或

select * from r inner join s where r.c = s.c;

非等值連線 :在連線條件中,可以使用其他比較運算子,比較被連線列的列值,如:、!=等。

外連線

外連線分為三類:全外連線、左外連線、右外連線。

左外連線 left join / left outer join

左外連線要遍歷左表的所有記錄,右表沒有的用null表示。

右外連線 right join / right outer join

右外連線要遍歷右表所有的記錄,左表沒有的用null表示。

全外連線 full join / full outer join

MySQL中的多表連線

一 語法結構 使用乙個表在多個表中查詢資料 where子句中寫連線條件 二 等值連線 等值連線也被稱為簡單連線 joins 或內連線 inner joins 是通過等號來判 斷連線條件中的資料值是否相匹配。例查詢雇員 king 所在的部門名稱 select d.department name fro...

mysql 的多表連線

1 select from a b 預設是笛卡爾積 2 內連線 兩者一樣 顯示內連線 select from a inner join b on 條件 隱式內連線 select from a,b where 條件 3 外連線 3.1 左外連線 select from a left outer joi...

mysql多表連線

現有表r,s如下 select from r,s 結果 注 不需要任何條件。結果為兩張表函式相乘 3x3 9 自連線 select e.empno,e.ename,m.empno,m.ename from emp e,emp m where m.mgr e.empno 分為三種 交叉連線 內連線 外...