廢話不多說,用個實例來說明
如圖是一張學生表(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。
而內連接是將兩個表中所關聯的共有的數據展示出來