sql 多表鏈結 待補充

2021-08-30 05:53:49 字數 1343 閱讀 1673

在講外連線之前,先舉例介紹內連線,也就是一般的相等連線。

select * from a, b where a.id = b.id;

對於外連線,oracle中可以使用「(+)」來表示,9i可以使用left/right/full outer join,下面將配合例項一一介紹。

1. left outer join:左外關聯

select e.last_name, e.department_id, d.department_name

from employees e

left outer join departments d

on (e.department_id = d.department_id);

等價於select e.last_name, e.department_id, d.department_name

from employees e, departments d

where e.department_id=d.department_id(+);

結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄。

2. right outer join:右外關聯

select e.last_name, e.department_id, d.department_name

from employees e

right outer join departments d

on (e.department_id = d.department_id);

等價於select e.last_name, e.department_id, d.department_name

from employees e, departments d

where e.department_id(+)=d.department_id;

結果為:所有員工及對應部門的記錄,包括沒有任何員工的部門記錄。

3. full outer join:全外關聯

select e.last_name, e.department_id, d.department_name

from employees e

full outer join departments d

on (e.department_id = d.department_id);

結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄和沒有任何員工的部門記錄。 [/size]

多表鏈結查詢語句

多表查詢常涉及到到表連線的問題,主要涉及到內連線 inner join 外連線 left join or left outer join right join or right outer join full join 和交叉連線 cross join inner join 也叫等值鏈結。內連線具有...

mysql 多表鏈結查詢

我要做乙個按銷售數量排序的查詢sql操作,現在有如下3個表,要求獲取d product表中的所有資料 包括沒有銷售記錄的資料 以及d item表中的銷售數量 product num欄位的值 查詢條件是d category表的id,按d item表中的銷售數量 product num欄位的值 請問這樣...

MySQL 多表鏈結查詢

多表鏈結查詢時從多個表中獲取資料 table reference inner join outer join table reference on conditional expr 根據連線條件從多個表中查詢選擇資料,顯示這些表中與連線條件匹配的資料行,組合成新紀錄 就是匹配兩表相同的行 交集 內連...