1. 程式人生 > >MYSQL的多表查詢

MYSQL的多表查詢

保留 name left 兩張 技術 笛卡兒 對應關系 pre 全連接

1、笛卡兒積
select * from emp,dep; 

select * from emp,dep where emp.dep_id = dep.id;

select * from emp,dep where emp.dep_id = dep.id and dep.name = "技術";

2、內連接:只取兩張表有對應關系的記錄

select * from emp inner join dep on emp.dep_id = dep.id;
select * from emp inner join dep on emp.dep_id = dep.id
                                                        where dep.name = "技術";
        inner join 連接兩個表, where過濾條件,只取條件符合的

3、左連接: 在內連接的基礎上保留左表沒有對應關系的記錄

select * from emp left join dep on emp.dep_id = dep.id;

4、右連接: 在內連接的基礎上保留右表沒有對應關系的記錄

select * from emp right join dep on emp.dep_id = dep.id;

5、全連接:在內連接的基礎上保留左、右面表沒有對應關系的的記錄

select * from emp left join dep on emp.dep_id = dep.id
union
select * from emp right join dep on emp.dep_id = dep.id;

MYSQL的多表查詢