美文网首页
Mysql两表联合查询的四种情况总结

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

作者: 花伤情犹在 | 来源:发表于2021-09-11 14:38 被阅读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

  • JOIN: 如果表中有至少一个匹配,则返回行
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行
  • LEFT 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

相关文章

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

    一般来说,我们为了得到更完整的结果,我们需要从两个或更多的表中获取结果,我一般都是用select xxx,xxx ...

  • Mysql 锁详解

    Mysql 锁详解一、前言二、MyISAM2.1 MyISAM表锁2.2 查询表级锁争用情况2.3 MySQL表级...

  • MySQL联合查询语法内联、左联、右联、全联

    MySQL联合查询效率较高,以下例子来说明联合查询(内联、左联、右联、全联)的好处: T1表结构(用户名,密码) ...

  • Mysql多表查询

    Mysql多表查询 转自多表联合查询 内连接表间主键和外键相连,取得键值相同的记录.从双方的表中取得键值相同的记录...

  • DQL -- 多表联合查询

    现实生活中,我们需要查询的数据并不独立存在在某一张表中,此时就需要进行多表联合,进行查询操作了。多表联合主分四种:...

  • MySQL锁表和解锁操作

    1、确定mysql有锁表的情况则使用以下命令查看锁表进程 2、杀掉查询结果中已经锁表的trx_mysql_thre...

  • MySQL 中两表连接查询总结

    在之前的学习中,筛选出来的列都是一张表中的,本篇开始是对连表查询的学习内容。先从以下场景开始: 生成一张报价单,报...

  • Mysql分库分表方案

    Mysql分库分表方案 1.为什么要分表: 当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询...

  • Mysql分库分表方案

    Mysql分库分表方案 1.为什么要分表: 当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询...

  • 实现无限级分类的数据库设计及sql查询

    创建表 查询数据 联合查询join

网友评论

      本文标题:Mysql两表联合查询的四种情况总结

      本文链接:https://www.haomeiwen.com/subject/ddfawltx.html