Mysql两表联合查询的四种情况总结

2021-09-11  本文已影响0人  花伤情犹在

一般来说,我们为了得到更完整的结果,我们需要从两个或更多的表中获取结果,我一般都是用select xxx,xxx from 表1,表2 where 表1.xxx=表2.xxx,我们一般都是进行的是这般的操作,其实mysql中还有一种操作,那就是join的操作,例如底下有两个表:

请看 "Persons" 表:
image.png
接下来请看 "Orders" 表:
image.png
以上的这两个表,然后我们把它们进行连接查询:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P
结果集:
image.png
如果使用关键词JOIN来从两个表中获取数据:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
结果集:
image.png

则inner join 与上面的普通查询没有区别

不同的 SQL JOIN

"Persons" 表:


image.png

"Orders" 表:


image.png
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

结果集:


image.png
SQL RIGHT JOIN 关键字

"Persons" 表:


image.png

"Orders" 表:


SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
SQL FULL JOIN 关键字

"Persons" 表:


image.png

"Orders" 表:


image.png
全连接(FULL JOIN)实例
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

结果集:


image.png
上一篇 下一篇

猜你喜欢

热点阅读