返回
MySQL基础-左外连接、右外连接与自然连接
后端
2023-11-13 23:11:13
外连接
外连接是表连接的一种,它允许您将两张或多张表连接起来,即使这些表之间没有匹配的行。外连接分为两种:左外连接和右外连接。
左外连接
左外连接是一种特殊类型的表连接,它将两张表连接起来,即使右表中没有与左表匹配的行,它也会返回左表中的所有行。左外连接的语法结构为:
SELECT 字段
FROM 左表
LEFT JOIN 右表
ON 左表.字段 = 右表.字段;
例如,我们有一张学生
表和一张成绩
表,学生
表中存储了学生的基本信息,成绩
表中存储了学生的分数。我们可以使用左外连接来查询所有学生的信息,即使他们没有成绩记录。
SELECT 学生.学号, 学生.姓名, 学生.性别, 成绩.分数
FROM 学生
LEFT JOIN 成绩
ON 学生.学号 = 成绩.学号;
上面的查询将返回所有学生的信息,即使他们没有成绩记录。对于没有成绩记录的学生,分数
字段将返回NULL
。
右外连接
右外连接与左外连接类似,但它是从右表的角度来进行连接的。右外连接的语法结构为:
SELECT 字段
FROM 右表
RIGHT JOIN 左表
ON 右表.字段 = 左表.字段;
例如,我们有一张订单
表和一张订单明细
表,订单
表中存储了订单的基本信息,订单明细
表中存储了订单的详细内容。我们可以使用右外连接来查询所有订单的信息,即使这些订单没有明细记录。
SELECT 订单.订单号, 订单.下单时间, 订单.总金额, 订单明细.商品名称, 订单明细.数量
FROM 订单
RIGHT JOIN 订单明细
ON 订单.订单号 = 订单明细.订单号;
上面的查询将返回所有订单的信息,即使这些订单没有明细记录。对于没有明细记录的订单,商品名称
和数量
字段将返回NULL
。
自然连接
自然连接是一种特殊的表连接,它只连接那些在连接列上具有匹配值的行的表。自然连接的语法结构为:
SELECT 字段
FROM 左表
NATURAL JOIN 右表;
例如,我们有一张学生
表和一张成绩
表,学生
表中存储了学生的基本信息,成绩
表中存储了学生的分数。我们可以使用自然连接来查询所有有成绩记录的学生的信息。
SELECT 学生.学号, 学生.姓名, 学生.性别, 成绩.分数
FROM 学生
NATURAL JOIN 成绩;
上面的查询将只返回那些在学号
列上具有匹配值的行的信息。对于没有成绩记录的学生,该查询将不返回任何结果。
总结
左外连接、右外连接和自然连接都是非常有用的表连接类型,它们可以帮助您从不同的角度查询数据。在实际应用中,您需要根据自己的需要选择合适的表连接类型。