内连接和左外连接的区别


废话不多说,用个实例来说明

如图是一张学生表(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