select s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
from students s
inner join classes c
on s.class_id = c.id;
注意inner join查詢的寫法是:
先確定主表,仍然使用from 《表1>
的語法;
再確定需要連線的表,使用inner join 《表2>
的語法;
然後確定連線條件,使用on 《條件...>
,這裡的條件是s.class_id = c.id
,表示students
表的class_id
列與classes
表的id
列相同的行需要連線;
可選:加上where
子句、order by
等子句。
inner join只返回同時存在於兩張表的行資料
select s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
from students s
left outer join classes c
on s.class_id = c.id;
right outer join返回右表都存在的行。如果某一行僅在右表存在,那麼結果集就會以null
填充剩下的字段。
select s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
from students s
right outer join classes c
on s.class_id = c.id;
left outer join則返回左表都存在的行。如果某一行僅在左表存在,那麼結果集就會以null
填充剩下的字段。
full outer join:取並集
select s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
from students s
full outer join classes c
on s.class_id = c.id;
它會把兩張表的所有記錄全部選擇出來,並且,自動把對方不存在的列填充為null
a inner join b 取交集。
a left join b 取 a 全部,b 沒有對應的值為 null。
a right join b 取 b 全部 a 沒有對應的值為 null。
a full outer join b 取並集,彼此沒有對應的值為 null。
對應條件在on後面填寫。
SQL 連線查詢
連線查詢是指乙個查詢同時涉及到兩個及以上的表。包括 等值連線,自然連線,非等值連線,自身連線,外連線,復合查詢.等.color red size large 1.等值連線 於非等值連線 size color 查詢每個學生及選課的情況 select student.sc.from student,sc...
sql連線查詢
sql連線查詢的連線查詢分為交叉連線 內連線 外連線。以下面兩張表為例演示連線查詢。a表 b表 分為左連線 右連線 完全外連線 左連線 left join 或left outer join select from a left outer join b on a.aid b.bid返回結果 返回a表...
SQL連線查詢
筆記區 多表連線查詢 1,等值連線 select from table1,table2 where table1.t1no table2.t2no 2,非等值 笛卡爾積 特點 查詢個數為乘積 作用 模擬大量資料 交叉連線 自連線內連線 把符合條件的查出來 以上都是內查詢 外連線 可以把不存在員工的部...