mysql多表連線

2021-07-05 02:00:27 字數 1350 閱讀 6455

現有表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; 

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

沒有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

select * from r full join s on r.c = s.c;

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 分為三種 交叉連線 內連線 外...

MySQL多表連線

建兩個表,其中address是user info的位址表 user info表 create table user info id int 2 primary key,user name varchar 12 unique,password varchar 15 not null,real name...

Mysql 多表連線

2.1.2內連線 關鍵字 inner join on 說明 組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集 陰影 部分。2.1.1外連線 左連線 左外連線 關鍵字 left join on left outer join on left join 是left outer join...