常用的多表连接查询

本文介绍了数据库查询中的多表连接技术,包括内连接、左连接和右连接等类型。重点讲解了连接条件的设置方法及不同连接方式的特点。通过具体实例展示了如何在实际应用中运用这些连接技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多表连接查询的分类

  1. 内连接(inner join)
  2. 外连接
    • 左连接(left join)
    • 右连接(right join)


内连接(inner join…on…)

MySQL INNER JOIN子句将一个表中的行与其他表中的行进行匹配,并允许从两个表中查询包含列的行记录。

INNER JOIN子句是SELECT语句的可选部分,它出现在FROM子句之后。

在使用INNER JOIN子句之前,必须指定以下条件:

  • 首先,在FROM子句中指定主表。
  • 其次,表中要连接的主表应该出现在INNER JOIN子句中。理论上说,可以连接多个其他表。 但是,为了获得更好的性能,应该限制要连接的表的数量(最好不要超过三个表)。
  • 第三,连接条件或连接谓词。连接条件出现在INNER JOIN子句的ON关键字之后。连接条件是将主表中的行与其他表中的行进行匹配的规则。

格式

1 inner join2 on1.=2.

例子:

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

外连接

左连接(left join…on…)

  • LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
  • 注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。

格式

1 left join2 on1.=2.

例子:

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

右连接(right join…on…)

  • RIGHT JOIN与 LEFT JOIN相反,RIGHT JOIN关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
  • 注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。

格式

1 left join2 on1.=2.

例:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值