1.1 基本格式
select fieldname
from tbname1
連線符 tbname2
on 條件
1.2 笛卡爾乘積【避免】-- 笛卡爾乘積,沒有約束條件,資料庫匹配發生相乘關係,結果也不是預期結果
-- 無意義結果
select employee_id, first_name
from t_employees
inner join t_jobs;
1.3 內連線查詢 inner join on兩張表-- 查詢所有部門部門名,和對應的員工資訊id和first_name
select t_departments.department_name,
t_employees.employee_id,
t_employees.first_name -- 查詢內容
from t_employees -- 從員工表中查詢
inner join t_departments -- 內連線部門表
on t_employees.department_id = t_departments.department_id;
-- 條件限制員工表中的部門id = 部門表中的部門id
-- 查詢所有部門部門名,和對應的員工資訊id和first_name
-- 給予**乙個別名,方便使用
select d.department_name,
e.employee_id,
e.first_name -- 查詢內容
from t_employees e-- 從員工表中查詢
inner join t_departments d-- 內連線部門表
on e.department_id = d.department_id; -- 條件限制員工表中的部門id = 部門表中的部門id
1.4 內連線查詢 inner join on 四張表-- 查詢所有員工對應的id號,名字,部門名稱,和國家對應名字
select te.employee_id, te.first_name, td.department_name, tc.country_name
from t_employees te
inner join t_departments td on te.department_id = td.department_id
inner join t_locations tl on td.location_id = tl.location_id
inner join t_countries tc on tl.country_id = tc.country_id;
1.5 內連線查詢 inner join on 五張表-- 查詢所有員工對應的id號,名字,工作職稱,部門名稱,和國家對應名字
select te.employee_id, te.first_name, tj.job_title, td.department_name, tc.country_name
from t_employees te
inner join t_jobs tj on te.job_id = tj.job_id
inner join t_departments td on te.department_id = td.department_id
inner join t_locations tl on td.location_id = tl.location_id
inner join t_countries tc on tl.country_id = tc.country_id;
1.6 左外連線 left join on-- 左外連線 左表是主表,要求左表完整顯示,右表匹配左表資料,如果右表沒有資料匹配,顯示null
-- 查詢所有的員工資訊id,first_ame,已經對應的部門名字
select te.employee_id, te.first_name, td.department_name
from t_employees te
left join t_departments td on te.department_id = td.department_id;
1.7 右外連線 right-- 右外連線查詢,右表是主表,要求右表完整展示,左表匹配右表資料,如果左表沒有資料匹配,顯示null
-- 查詢所有部門對應員工資訊,員工資訊沒有顯示null
select td.department_name,te.employee_id, te.first_name
from t_employees te
right join t_departments td on te.department_id = td.department_id;
表連線查詢
內連線 inner join explain select count from base base inner join a a on base.id a.a id inner join b b on base.id b.b id 結果等同於 explain select count from b...
多表查詢(表連線)
insert into emp empno,ename,job values 8888,張三 clerk 1 內連線 等值連線 之前使用的都是等值連線 select e.empno,e.ename,e.job,d.deptno,d.dname,d.loc from emp e,dept d wher...
sql 表連線查詢
自連線查詢 要求查詢學生表中和吳剛同乙個 地的學生的所有訊息 select t1.from student1 t1,student1 t2 where t1.origin t2.origin and t2.name 吳剛 兩表間不等值連線查詢 select st.name st.birthday n...