SqlServer--多表之間的數據查詢


以下是學習筆記:

1,內連接查詢:2張表的查詢  

內連接查的是:幾張表之間的公共部分,與表的先后順序沒有關系

 

 

--內連接查詢,兩張表查詢
select Students.StudentId,C#成績=CSharp,StudentName --StudentId是公共字段,必須要說明是哪張表的StudentId,這里寫 Students.StudentId或者ScoreList.StudentId都可以
from ScoreList  --哪個表的字段表較多或者要查詢的內容集中在哪張表中,就把那張表寫在這里,from后面的ScoreList和inner join后面的Students可以交換位置的
inner join Students on  Students.StudentId=ScoreList.StudentId --第一張表
 where CSharp >80

 --內連接查詢,兩張表查詢
select ScoreList.StudentId,C#成績=CSharp,StudentName --StudentId是公共字段,必須要說明是哪張表的StudentId 
from Students  --哪個表的字段表較多或者要查詢的內容集中在哪張表中,就把那張表寫在這里
inner join ScoreList on  Students.StudentId=ScoreList.StudentId --第一張表
 where CSharp >80

  

【舉例2】

 

 

 

2,內連接查詢:3張表的查詢

 

 

 --內連接查詢,三張表表查詢
select Students.StudentId,C#成績=CSharp,StudentName,ClassName --StudentId是公共字段,必須要說明是哪張表的StudentId 
from ScoreList  --哪個表的字段表較多或者要查詢的內容集中在哪張表中,就把那張表寫在這里
inner join Students on  Students.StudentId=ScoreList.StudentId --第一張表
inner join StudentClass on Students.ClassId=StudentClass.ClassId  --第二張表
 where CSharp >80

 3,左外連接

 

 

 

 

 --左外連接查詢 表的位置先后位置有關系,首先滿足左表的所有數據
 --查詢的結果包括2個表所有滿足連接條件的記錄。以及 左表有所不滿足條件的其他記錄。這些不滿足的左表記錄,在結果的右邊位置,全部天上NULL值
select  Students.StudentId,StudentName,Gender ,C#成績=CSharp from Students  --從Students表中查詢,from后面代表的是左邊,左表
left outer join ScoreList on Students.StudentId=ScoreList.StudentId
where Gender='男'

select  Students.StudentId,StudentName,Gender ,C#成績=CSharp from ScoreList --從ScoreList表中查詢
left outer join Students on Students.StudentId=ScoreList.StudentId
where Gender='男'

select  Students.StudentId,StudentName,Gender ,C#成績=CSharp from ScoreList --從ScoreList表中查詢
left join Students on Students.StudentId=ScoreList.StudentId --outer關鍵字去掉也可以的,標准寫法我們還是帶outer
where Gender='男'

  4,右外連接

待更新。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM