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 join b on 條件;
查詢結果是左邊的表a的全部資訊和a,b兩張表的交集
⚠️如果是select * from a left outer join b on 條件 where 條件1; 因為a 有 b沒有的字段 會以null 補充,所以後面如果再帶where 條件時,一般null 都不符合條件1,所以查出的結果很可能造成資料缺失
⚠️on 條件中如果有對左表的限制條件,無論條件真假,依然返回左表的所有行,但是會影響右表的匹配值。也就是說on中左表的限制條件只影響右表的匹配內容,不影響返回行數
⚠️on 和 where 的前後順序。如果where 在前是先篩選後連線; 如果where 在後 是先連線後篩選
這裡參考:
3.2 右外連線:select * from a right outer join b on 條件;
查詢結果是右邊的表b的全部資訊和a,b兩張表的交集
ps:今天被問到表連線注意什麼?我他媽哪知道他要的是問這個,真的是全場懵逼!!
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 分為三種 交叉連線 內連線 外...
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...