-->

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类型,进行数据查询。

posted @ 2023-07-31 11:21  角刀牛Java  阅读(1010)  评论(0编辑  收藏  举报