当前位置:   article > 正文

MySQL——联表查询JoinON详解

MySQL——联表查询JoinON详解

Join 对比(7种)


代码演示:

  1. -- 查询参加了考试的同学(学号,姓名,科目编号,分数)
  2. SELECT * FROM student
  3. SELECT * FROM result
  4. /*
  5. 1. 分析需求:分析查询的字段来自哪些表(超过一张表就要使用连接查询)
  6. 2. 确定使用哪种连接查询 共7种
  7. 3. 确定交叉点(这两个表中哪个数据是相同的)
  8. 4. 判断的条件:学生表中的 studentno = 成绩表 studentno
  9. */
  10. SELECT s.studentno,studentname,subjectno,studentresult
  11. FROM student AS s
  12. INNER JOIN result AS r
  13. WHERE s.studentno = r.studentno
  14. -- LEFT JOIN
  15. SELECT s.studentno,studentname,subjectno,studentresult
  16. FROM student s
  17. LEFT JOIN result r
  18. ON s.studentno = r.studentno
  19. -- RIGHT JOIN
  20. SELECT s.studentno,studentname,subjectno,studentresult
  21. FROM student s
  22. RIGHT JOIN result r
  23. ON s.studentno = r.studentno

操作描述
Inner join如果表中至少有一个匹配,就返回行
left join即使右表中没有匹配,也会从左表中返回所有的值
right join即使左表中没有匹配,也会从右表中返回所有的值
  1. -- 查询缺考的同学
  2. SELECT s.studentno,studentname,subjectno,studentresult
  3. FROM student s
  4. LEFT JOIN result r
  5. ON s.studentno = r.studentno
  6. WHERE studentresult IS NULL
  1. -- 思考题:查询参加考试的同学信息(学号,学生姓名,科目名,分数)
  2. SELECT s.studentno,studentname,`subjectname`,studentresult
  3. FROM student s
  4. RIGHT JOIN result r
  5. ON r.studentno = s.studentno
  6. INNER JOIN `subject` sub
  7. ON r.subjectno = sub.subjectno
  8. -- 若要在多张表查询,可以慢慢来,先查询两张表然后再增加

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/771612
推荐阅读
相关标签
  

闽ICP备14008679号