內連接和左外連接的區別


廢話不多說,用個實例來說明

如圖是一張學生表(student)

 

 

 如圖是一張成績表(score)

 

 通過上面兩張表,我們可以看到一共有8個學生,學號01-08。但是在成績表中只有7位學生有成績,其中學號為08的王菊是沒有成績的

如果現在我們要  查詢所有同學的學號、姓名、選課數、總成績

內連接方式:

SELECT
    s.`sid` AS '學號',s.`sname` AS '姓名',COUNT(sc.`cid`) AS '選課數',SUM(sc.`score`) AS '總成績'
FROM
    student s,sc
WHERE
    s.`sid` = sc.`sid`
GROUP BY
    s.`sid`

結果:

 

 左外連接方式:

 

 

 

SELECT 
    s.`sid` AS '學號',s.`sname` AS '姓名',COUNT(sc.`cid`) AS '選課數',SUM(sc.`score`) AS '總成績'
FROM 
    student s
LEFT JOIN sc
ON s.`sid` = sc.`sid`
GROUP BY 
    s.`sid`

結果:

 

 從上面兩種查詢方式的結果來看,使用左外連接是以左表為基礎,查詢出左表的全部和所關聯的右表,如果左表的某些數據,在其右表中沒有關聯會自動初始化值0或null。

而內連接是將兩個表中所關聯的共有的數據展示出來

 


免責聲明!

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



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