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

下面是详细讲解“Mysql两表联合查询的四种情况总结”的完整攻略。

简介

Mysql联合查询是指在多个表中查询出相关联的数据,并将这些数据组合成一个数据集合。

一般常见的联合查询有两个表之间的连接查询和两个表的全集查询,而这两种查询又可以分成内联接、左联接、右联接、全联接等四种情况。下面我们将分别介绍这四种情况的使用方法。

内联接

内联接是指仅显示两个表中相匹配的行。在 MySQL 中,内联接默认是 INNER JOIN 。

内联接的语法:

SELECT 表1.字段1,表2.字段1, 表2.字段2...
FROM 表1
INNER JOIN 表2
ON 表1.字段=表2.字段;

示例:

假设我们有两个表,一个叫stu, 一个叫score,stu表中保存了学生的姓名和ID信息,score表中保存了学生成绩信息(包括ID和成绩信息),我们希望查询出两个表匹配的学生ID、姓名和成绩。

首先我们需要使用 INNER JOIN 语句连接两个表,具体代码如下:

SELECT score.ID, stu.name, score.score
FROM score 
INNER JOIN stu 
ON score.ID = stu.ID;

执行结果如下:

+----+------+-------+
| ID | name | score |
+----+------+-------+
|  1 | Tom  |   88  |
|  2 | Mike |   92  |
|  3 | Jack |   78  |
+----+------+-------+

说明:这个查询语句使用了 INNER JOIN 命令、score 表和 stu 表。

左联接

左联接的语法:

SELECT 表1.字段1,表2.字段1, 表2.字段2...
FROM 表1
LEFT JOIN 表2
ON 表1.字段=表2.字段;

示例:

我们还可以使用左联接查询出两个表中匹配和不匹配的数据,具体代码如下:

SELECT stu.ID, stu.name, score.score
FROM stu
LEFT JOIN score
ON stu.ID = score.ID;

执行结果如下:

+----+------+-------+
| ID | name | score |
+----+------+-------+
|  1 | Tom  |   88  |
|  2 | Mike |   92  |
|  3 | Jack |   78  |
|  4 | John |  NULL |
+----+------+-------+

说明:这个查询语句使用了 LEFT JOIN 命令、score 表和 stu 表。

右联接

右联接的语法:

SELECT 表1.字段1,表2.字段1, 表2.字段2...
FROM 表1
RIGHT JOIN 表2
ON 表1.字段=表2.字段;

示例:

我们还可以使用右联接查询出两个表中匹配和不匹配的数据,具体代码如下:

SELECT stu.ID, stu.name, score.score
FROM stu
RIGHT JOIN score
ON stu.ID = score.ID;

执行结果如下:

+----+------+-------+
| ID | name | score |
+----+------+-------+
|  1 | Tom  |   88  |
|  2 | Mike |   92  |
|  3 | Jack |   78  |
|NULL| NULL |   60  |
+----+------+-------+

说明:这个查询语句使用了 RIGHT JOIN 命令、score 表和 stu 表。

全联接

全联接查询是指返回两个表中所有的数据。全联接的语法:

SELECT 表1.字段1,表2.字段1, 表2.字段2...
FROM 表1
FULL JOIN 表2
ON 表1.字段=表2.字段;

示例:

我们还可以使用全联接查询出两个表中全部的数据,具体代码如下:

SELECT stu.ID, stu.name, score.score
FROM stu
FULL JOIN score
ON stu.ID = score.ID;

执行结果如下:

+----+------+-------+
| ID | name | score |
+----+------+-------+
|  1 | Tom  |   88  |
|  2 | Mike |   92  |
|  3 | Jack |   78  |
|  4 | John |  NULL |
|NULL| NULL |   60  |
+----+------+-------+

说明:这个查询语句使用了 FULL JOIN 命令、score 表和 stu 表。

结束语

这就是 Mysql 两表联合查询的四种情况的操作方法了。需要注意的是,在 Mysql 的语句中,内联接默认的是 INNER JOIN,而其他三种则需要分别使用 LEFT JOIN、RIGHT JOIN、FULL JOIN 进行操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql两表联合查询的四种情况总结 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • MYSQL如何查看操作日志详解

    MySQL是一种常用的数据库管理系统,而操作日志则是MySQL数据库中一个非常重要的部分,它可以记录MySQL数据库中的所有操作,包括增删改查等等。在MySQL数据库中,我们可以通过以下步骤来查看操作日志: 步骤一:配置MySQL操作日志 MySQL的操作日志有两种类型:二进制日志与慢查询日志。为了方便日后检索,我们通常会开启这两种日志。我们可以按照以下步骤…

    database 2023年5月21日
    00
  • linux中数据库的定时备份

    让我来详细讲解 Linux 中数据库的定时备份的攻略。 1. 配置数据库的定时备份 1.1 搭建数据库 在 Linux 中首先需要搭建数据库。本文以 MySQL 数据库为例。可以使用命令来安装 MySQL: sudo apt-get install mysql-server 1.2 编写备份脚本 在 Linux 中,可以使用 mysqldump 工具来备份 …

    database 2023年5月22日
    00
  • MySQL笔记之Checkpoint机制

    CheckPoint是MySQL的WAL和Redolog的一个优化技术。   一、Checkpoint机制 CheckPoint做了什么事情?将缓存池中的脏页刷回磁盘。 checkpoint定期将db buffer的内容刷新到data file,当遇到内存不足、db buffer已满等情况时,需要将db buffer中的内容/部分内容(特别是脏数据)转储到d…

    2023年4月10日
    00
  • mysql存储过程事务管理简析

    MySQL存储过程事务管理简析 什么是事务 在关系型数据库中,事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作。事务可以由多个语句组成,这些语句被视为一个整体,如果这些语句都执行成功,则事务完成;如果其中一个语句执行出错,则整个事务将被回滚,影响到的数据会被还原为事务开始前的状态。因此,事务是一种安全且可靠的方法,用于管理数据库中的数据…

    database 2023年5月22日
    00
  • MySQL数据定义语言DDL的基础语句

    MySQL数据定义语言(DDL)的基础语句主要包含以下几种: CREATE语句:创建数据库、表、视图、存储过程、函数等对象。 — 创建一个名为example的数据库 CREATE DATABASE example; — 创建一个名为students的表 CREATE TABLE students( id INT PRIMARY KEY, name VAR…

    database 2023年5月18日
    00
  • SQL Server与Excel、Access数据之间互导操作教程

    下面是详细讲解SQL Server与Excel、Access数据之间互导操作教程的完整攻略,过程中包含两条示例说明。 SQL Server与Excel数据之间互导教程 导出数据 在SQL Server中导出数据到Excel有以下几种方法: 1. 通过导出向导导出数据 这是一种基本的方法,可以通过SQL Server Management Studio中的导出…

    database 2023年5月21日
    00
  • Redis哨兵模式实现一主二从三哨兵

    实现一主二从三哨兵的 Redis 高可用架构是业务场景中常见的方案之一,下面将介绍其具体实现方案。 一、什么是 Redis 哨兵模式 Redis 哨兵模式是指在 Redis 集群中,引入一些独立的进程,它们会自动检测 Redis 服务器的运行状态,并在主节点异常时进行故障转移。哨兵模式可以帮助 Redis 集群提高可用性,提高业务效率。 二、实现一主二从三哨…

    database 2023年5月22日
    00
  • Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)问题解决方法

    下面我将详细讲解“Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)问题解决方法”的完整攻略。 问题描述 在使用Mysql进行查询、更新、插入等操作时,可能会出现以下错误提示: Table ‘XXX’ is marked as crashed and last (automatic?) r…

    database 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部