Mysql 复杂查询丨联表查询

这篇具有很好参考价值的文章主要介绍了Mysql 复杂查询丨联表查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Mysql 复杂查询丨联表查询,mysql,数据库

💗wei_shuo的个人主页

💫wei_shuo的学习社区

🌐Hello World !


JOIN(联表查询)

联表查询(Join)是一种在数据库中使用多个表进行关联查询的操作。它通过使用 JOIN 关键字将多个表连接在一起,并根据关联条件从这些表中检索数据

INNER JOIN(内连接)

内连接(Inner Join)是一种在联表查询中使用的链接方式,它返回满足关联条件的行

语法
SELECT 列表
FROM 左表
INNER JOIN 右表 ON 关联条件;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l1Ociimq-1689851063423)(./image-20230720102802654.png)]

  • 表A:
ID   Name
---------
1    John
2    Mary
3    David
  • 表B:
ID   Age
--------
1    30
2    25
4    40
  • 内连接,可以根据ID列将表A和表B进行关联,并返回满足关联条件的行:
SELECT A.ID, A.Name, B.Age
FROM A
INNER JOIN B ON A.ID = B.ID;
  • 结果集:
ID   Name   Age
--------------
1    John   30
2    Mary   25

LEFT JOIN(左连接)

左连接(Left Join)是一种在联表查询中使用的链接方式,返回左表中的所有行,以及右表中满足关联条件的匹配行

语法
SELECT 列表
FROM 左表
LEFT JOIN 右表 ON 关联条件;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7zbJ5fjC-1689851063424)(./image-20230720102956745.png)]

  • 表A:
ID   Name
---------
1    John
2    Mary
3    David
  • 表B:
ID   Age
--------
1    30
2    25
4    40
  • 左连接,可以根据ID列将表A和表B进行关联,并返回满足关联条件的行:
SELECT A.ID, A.Name, B.Age
FROM A
LEFT JOIN B ON A.ID = B.ID;
  • 结果集:
ID   Name   Age
--------------
1    John   30
2    Mary   25
3    David  NULL

左连接返回了表A中的所有行,以及与表B中的ID匹配的行。由于表B中没有ID为3的行,所以返回的Age列为NULL

RIGHT JOIN(右连接)

右连接(Right Join)是一种在联表查询中使用的链接方式,它返回右表中的所有行,以及左表中满足关联条件的匹配行

语法
SELECT 列列表
FROM 左表
RIGHT JOIN 右表 ON 关联条件;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7ax5cLC4-1689851063424)(./image-20230720102817963.png)]

  • 表A:
ID   Name
---------
1    John
2    Mary
3    David
  • 表B:
ID   Age
--------
1    30
2    25
4    40
  • 右连接,可以根据ID列将表A和表B进行关联,并返回满足关联条件的行:
SELECT A.ID, A.Name, B.Age
FROM A
RIGHT JOIN B ON A.ID = B.ID;
  • 结果集:
ID   Name   Age
--------------
1    John   30
2    Mary   25
NULL NULL   40

右连接返回了表B中的所有行,以及与表A中的ID匹配的行。由于表A中没有ID为4的行,所以返回的ID和Name列为NULL

FULL JOIN(全连接)

全连接(Full Join)是一种在联表查询中使用的连接方式,它返回左表和右表中的所有行,并将它们按照关联条件进行匹配

语法
SELECT 列列表
FROM 左表
FULL JOIN 右表 ON 关联条件;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIDCAe56-1689851063425)(./image-20230720102904341.png)]

  • 表A:
ID   Name
---------
1    John
2    Mary
3    David
  • 表B:
ID   Age
--------
1    30
2    25
4    40
  • 全连接,可以将表A和表B进行关联,并返回左表和右表中的所有行:
SELECT A.ID, A.Name, B.Age
FROM A
FULL JOIN B ON A.ID = B.ID;
  • 结果集:
ID   Name   Age
--------------
1    John   30
2    Mary   25
3    David  NULL
NULL NULL   40

全连接返回了表A和表B中的所有行。由于表A中没有ID为4的行,所以返回的ID、Name和Age列为NULL;同样地,由于表B中没有ID为3的行,所以返回的ID、Name和Age列也为NULL

Cross Join(交叉连接)

交叉连接(Cross Join),也称为笛卡尔积(Cartesian Product),是一种在联表查询中使用的连接方式;返回两个表的所有可能组合,即将左表的每一行与右表的每一行进行组合

语法
SELECT 列列表
FROM 左表
CROSS JOIN 右表;
  • 表 A:
| ID | Name  |
|----|-------|
| 1  | John  |
| 2  | Mary  |
| 3  | David |
  • 表 B:
| ID | Department |
|----|------------|
| 1  | Sales      |
| 2  | Marketing  |
  • 交叉连接表 A 和表 B,我们得到了所有可能的组合
SELECT A.ID, A.Name, B.Department
FROM A
CROSS JOIN B;
  • 结果集:
| ID | Name  | Department |
|----|-------|------------|
| 1  | John  | Sales      |
| 1  | John  | Marketing  |
| 2  | Mary  | Sales      |
| 2  | Mary  | Marketing  |
| 3  | David | Sales      |
| 3  | David | Marketing  |

🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——点赞👍收藏⭐️评论📝


Mysql 复杂查询丨联表查询,mysql,数据库文章来源地址https://www.toymoban.com/news/detail-641870.html

到了这里,关于Mysql 复杂查询丨联表查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库基础之MySQL查询基础

    从今天开始,本系列内容就带各位小伙伴学习数据库技术 。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。 全文大约【 1212】 字,不说废话,只讲可以让你学到技术、

    2024年02月06日
    浏览(55)
  • MySQL数据库——MySQL SELECT:数据表查询语句

    在 MySQL 中,可以使用 SELECT 语句来查询数据。查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作。 SELECT 的语法格式如下: 其中,各条子句的含义如下: {*|字段列名} 包含星号通配符的字段列表,表示所要查询字段的

    2024年02月05日
    浏览(80)
  • MySQL数据库,联合查询

    目录 1. 联合查询 1.1 内查询 1.2 外查询 1.3 自连接 1.4 子查询 1.5 合并查询 联合查询,简单的来讲就是多个表联合起来进行查询。这样的查询在我们实际的开发中会用到很多,因此会用 笛卡尔积 的概念。 啥是笛卡尔积?两张表经过笛卡尔积后得到的新表的列数是两表列数之和

    2023年04月23日
    浏览(76)
  • MySQL数据库,聚合查询

    目录 1、聚合查询 1.1聚合函数 1.1.1count函数 1.1.2sum函数 1.1.3avg函数 1.1.4max函数 1.1.5min函数 1.2group by子句 1.3having 聚合函数查询又叫函数查询,它是通过一些特定的函数根据需求来查询相关的信息,常见的聚合函数为: COUNT - 求总数,不包含某字段为null值 SUM - 求和,不包含某字

    2023年04月21日
    浏览(58)
  • 如何查看其他电脑的MYSQL数据库 mysql查询另一个ip数据库

    文章标签 如何查看其他电脑的MYSQL数据库mysql数据库服务器MySQL 文章分类 MySQL数据库 阅读数 143 1.如何通过IP访问MySQL数据库 1.1 改表法 1.2 授权法 2.MySQL数据库基本命令 2.1 基本命令 2.2 注释 2.3 2.4 实践操作 3 小结 1.1 改表法 如果不从远程登陆,可以用 localhost 。这个时候

    2024年01月21日
    浏览(71)
  • 数据库系统原理及MySQL应用教程实验四MySQL数据库表数据的查询操作

    1.掌握SELECT 语句的基本语法格式。 2.掌握SELECT 语句的执行方法。 3.掌握SELECT 语句的 GROUP BY 和 ORDER BY 子句的作用。 验证性实验:在公司的部门员工管理数据库的bumen表和yuangong表上进行信息查询。 设计性试验:将在student表和score表上进行查询。 ( 一 ) 验证性实验 在

    2024年02月05日
    浏览(57)
  • 【MySql】数据库的聚合查询

    写在最前面的话         哈喽,宝子们,今天给大家带来的是MySql数据库的聚合查询。在前面CRUD章节我们学习了表达式查询,表达式查询是针对列和列之间进行运算的,那么如果想在行和行之间进行运算,那么就需要用到聚合查询。 聚合查询除了包含聚合函数外(count,

    2024年02月09日
    浏览(58)
  • MySQL数据库高级查询语句

    基于这两个数据库表格来实现以下实验 concat(x,y)将提供的参数x和y拼接成一个字符串 trim()返回去除指定格式的值 GROUP BY 有一个原则,凡是在 GROUP BY 后面出现的字段,必须在 SELECT 后面出现; 凡是在 SELECT 后面出现的、且未在聚合函数中出现的字段,必须出现在 GROUP BY 后

    2024年02月11日
    浏览(70)
  • MySQL数据库——高级查询语句

    数据库是用来存储数据,更新,查询数据的工具,而查询数据是一个数据库最为核心的功能,数据库是用来承载信息,而信息是用来分析和查看的。所以掌握更为精细化的查询方式是很有必要的。本文将围绕数据的高级查询语句展开。 1.指定指字段进行查询——SELECT 语法:

    2024年02月11日
    浏览(94)
  • MySQL数据库:数据库的约束以及数据的聚合、联合查询

    目录 一.关系模型的简要概述 二.数据库的约束  2.1约束类型         2.2NULL约束 2.3 UNIQUE:唯一约束 2.4 默认约束 2.5 PRIMARY KEY:主键约束 2.6 FOREIGN KEY:外键约束 2.7 CHECK约束 三.高效率查询 3.1高效率查询的分类 3.2聚合查询 3.2.1聚合函数 3.2.2 GROUP BY子句 3.2.3HAVING 3.3.联合查询

    2024年02月10日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包