SQLServer數據庫之連接查詢
表的連接查詢的幾種方法介紹:
inner join on內連接,left join on 左連接 , rigth join on 右連接, full join on 全連接
內連接(inner join)
內連接為查詢兩表的共有的數據,取兩表的交集
語法:
select [查詢內容] from [表1] inner join [表2] on [連接條件]
例如:查詢學生所在的班級
select s.name as 姓名,c.name as 班級 from student s inner join class c on s.classId=c.id
--等價與
select s.name as 姓名 ,c.name as 班級 from student s, class c where s.classId=c.id --必須加上條件,不然會出大問題
--也可以把inner省掉效果一樣 默認為Inner join 連接
左連接(left join)
左連接以查詢主表全部數據,如果從表沒有響應數據則以null作為填充
(主表為查詢表,從表為連接的表)
語法:
select [查詢內容] from [表1] left join [表2] on [連接條件]
例如
select s.name as 姓名,c.name as 班級 from student s
left join class c on s.classId=c.id
如圖:小思和小林像個班級的孩子
右連接(right join)
從表查詢全部數據,如果主表沒有數據則以null填充
(主表為查詢表,從表為連接的表)
語法:
select [查詢內容] from [表1] right join [表2] on [連接條件]
例如
select s.name as 姓名,c.name as 班級 from student s
right join class c on s.classId=c.id
如圖:大三和大四沒有學員
全連接(full join)
主從表全部數據,如果主從表沒有對應數據則以null填充
(主表為查詢表,從表為連接的表)
語法:
select [查詢內容] from [表1] full join [表2] on [連接條件]
例如
select s.name as 姓名,c.name as 班級 from student s
full join class c on s.classId=c.id
如圖:
總結:
在項目中為了適應不同的需求選擇合適的連接方式