mysql多表連線的幾種寫法

2022-09-01 20:39:08 字數 1256 閱讀 9321

在資料庫進行多張表的查詢,必定會用到多表關聯,只要是多表關聯,就會產生笛卡兒積(什麼是笛卡兒積:最簡單的解釋,就是你要關聯的每張表總記錄的乘積),所以一定要寫關聯條件。關聯條件就是在所產生的笛卡兒積之間篩選資料。

多表連線主要分為:inner join與outer join

實驗:table_atable_b

id   value           id     value

1      va1          1      vb1

2      va2          3      vb3

4      va4          4      vb4

inner join(也可直接用,號替代,後加where關聯條件),用on來關聯條件。只查詢滿足關聯條件的資料,結果集小於等於兩表之間記錄行數的最小值

1 select * from table_a t,table_b t1 where t.id=t1.id;

23 select * from table_a t inner join table_b t1 on t.id=t1.id;

id  value  id  value

1   va1   1    vb1

4   va4   4    vb4

outer join

left (outer) join:已左邊表的記錄為基準,右邊表中找不到則補null。結果集等於左表記錄的行數

1 select * from table_a t left join table_b t1 on t.id=t1.id;

id  value  id  value

1   va1   1    vb1

2   va2   null  null

4   va4   4    vb4

right (outer) join:已右邊表的記錄為基準,左邊表中找不到則補null。結果集等於右表記錄的行數

1 select * from table_a t right join table_b t1 on t.id=t1.id;

id  value  id  value

1   va1   1    vb1

null null   3   vb3

4   va4   4    vb4

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

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