連接查詢(等值連接,內連接,左連接,右連接,自關聯)


有3個表

 

1、等值連接:連接過程中,先連接,再條件判斷

    語法:select * from 表1,表2

       where 表1.列=表2.列

    例:查詢學生信息及學生的成績

                   

      

 

 2、內連接: 連接過程中,先判斷,符合條件才會連接

    語法:select * from 表1,表2

       inner join 表2.列=表2.列

 例:查詢課程信息及學生的成績

方式1:

方式2:

 

 例:查詢學生信息及學生的課程對應的成績

方式1:

方式2:

 

 例:查詢王昭君的成績,要求顯示姓名,課程號,成績

方式1:

方式2:

 

 

 例:查詢王昭君的數據庫成績,要求顯示姓名、課程名、成績

方式1:

方式2:

 

 例:查詢所有的數據庫成績,要求顯示姓名、課程名、成績

方式1:

方式2:

 

 例:查詢男生中最高成績,要求顯示姓名、課程名、成績

方式1:

方式2:

 

 

 3、左連接:

    語法:select * from 表1,表2

       left join 表2 on 表1.列=表2.列

例:查詢所有學生的成績,包括沒有成績的學生

 

 例:查詢所有學生的成績,不包括沒有成績的學生

 

例:查詢所有學生的成績,包括沒有成績的學生,需要顯示課程名

例:查詢所有學生的成績,不包括沒有成績的學生,需要顯示課程名

 

 

 4、右連接:

    語法:select * from 表1,表2

       right join 表2 on 表1.列=表2.列

例:查詢所有學生的成績,包括沒有成績的學生

 

 例:查詢所有學生的成績,不包括沒有成績的學生

 

 例:查詢所有課程的成績,包括沒有成績的學生,包括學生信息

 

 例:查詢所有課程的成績,不包括沒有成績的學生,包括學生信息

 

 

 5、自關聯

舉例:沒有上級編號,Null

aid跟pid進行比較,如果后面的pid==前面的aid,代表市屬於省

 例:一共有多少個省 :select * from areas where pid is null;

pid為空,說明是省,沒有上級

例:查詢河南省所有城市  (areas可以查2次)

方式1:

查詢的時候,重命名2個表格,一個是省,一個是市

 方式2:

 

例:查詢鄭州市所有區縣

 

 例:查詢河南省的所有區縣

 


免責聲明!

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



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