SQL中Join的使用详细解释
SQL之Join的使用详解
Join是SQL查询中重要的操作之一,它是将多个表中的数据进行联接,生成新的关系表,及时获取多个表中对应的数据。下面我们详细介绍Join的使用方法。
Join简介
Join的作用是基于两个表之间的关系,将它们的信息合并到一个表中。我们可以通过Join来实现从一个表中查询有关联的信息的效果。
常用的Join类型有:内连接(Inner Join)、左连接(Left Join)、右连接(Right Join)和全连接(Full Join)。以下我们将分别介绍这些Join类型的使用方法及其特点。
1. 内连接(Inner Join)
内连接是最常用的Join类型,它只返回两个表中交集(共有数据)的数据行。
SELECT *
FROM table1
INNER JOIN table2
ON table1.key = table2.key;
比如我们有两个表,一个表是学生表(students),包含学生信息,另一个表是课程表(courses),包含课程信息,现在我们要查询修了课程的所有学生信息:
SELECT students.name, courses.course_name
FROM students
INNER JOIN courses
ON students.id=courses.student_id;
2. 左连接(Left Join)
左连接返回左表的所有行,右表中与左表中行匹配的行,其它没匹配上的右表中的所有行为NULL。
SELECT *
FROM table1
LEFT JOIN table2
ON table1.key = table2.key;
比如我们有两个表,一个表是商品表(goods),包含了商品各自的信息,另外一张表是库存表(stocks),包含了商品的库存信息,现在我们要查询所有商品的信息以及对应的库存信息,包括没有库存的商品:
SELECT goods.*, stocks.num
FROM goods
LEFT JOIN stocks
ON goods.id=stocks.goods_id;
3. 右连接(Right Join)
右连接返回右表的所有行,左表中与右表中行匹配的行,其它没匹配上的左表中的所有行为NULL。
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.key = table2.key;
比如我们有两个表,一个表是学生表(students),包含学生信息,另一个表是学生成绩表(scores),包含了学生的成绩信息,现在我们要查询所有学生成绩信息以及对应的学生信息,包括未有成绩的学生:
SELECT students.*, scores.score
FROM students
RIGHT JOIN scores
ON students.id=scores.student_id;
4. 全连接(Full Join)
全连接能返回两个表各自的所有行及有交集的数据行,没有交集的数据行为NULL。
SELECT *
FROM table1
FULL JOIN table2
ON table1.key = table2.key;
比如我们有两个表,一个表是商品表(goods),包含了商品各自的信息,另外一张表是库存表(stocks),包含了商品的库存信息,现在我们要查询所有商品的信息以及对应的库存信息:
SELECT goods.*, stocks.num
FROM goods
FULL JOIN stocks
ON goods.id=stocks.goods_id;
以上就是Join的使用详解,大家可以结合实际情况选择合适的Join类型,进行数据查询。
        我曾七次鄙视自己的灵魂:
  第一次,当它本可进取时,却故作谦卑;
  第二次,当它在空虚时,用爱欲来填充;
  第三次,在困难和容易之间,它选择了容易;
  第四次,它犯了错,却借由别人也会犯错来宽慰自己;
  第五次,它自由软弱,却把它认为是生命的坚韧;
  第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
  第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。
时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下
作者:博客园 - 角刀牛
出处:https://www.cnblogs.com/jiaodaoniujava/
该文章来源互联网,本博仅以学习为目的,版权归原作者所有。
若内容有侵犯您权益的地方,请公告栏处联系本人,本人定积极配合处理解决。