常用的多表连接查询

多表连接查询的分类
内连接(inner join)
外连接
左连接(left join)
右连接(right join)

内连接(inner join…on…)
MySQL INNER JOIN子句将一个表中的行与其他表中的行进行匹配,并允许从两个表中查询包含列的行记录。

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

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

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

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
1
2
3
4
外连接
左连接(left join…on…)
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。
格式
表1 left join 表2 on 表1.列 = 表2.列
1
例子:

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
1
2
3
4
右连接(right join…on…)
RIGHT JOIN与 LEFT JOIN相反,RIGHT JOIN关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。
格式
表1 left join 表2 on 表1.列 = 表2.列
1
例:

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、付费专栏及课程。

余额充值