mysql的内连接,左连接和右链接查询详解

yizhihongxing

MySQL的内连接、左连接和右连接查询详解

内连接(Inner Join)

内连接也叫等值连接,表示两张表中字段相等的数据行才会被查询出来。内连接常用的语法格式是:

SELECT column_name(s) 
FROM table1 
INNER JOIN table2 
ON table1.column_name = table2.column_name;

示例1:假设有两个表student和score,它们有共同的字段student_id,要查询每个学生的学号和分数,应使用内连接查询:

SELECT s.student_id, sc.score 
FROM student s 
INNER JOIN score sc 
ON s.student_id = sc.student_id;

左连接(Left Join)

左连接可以查询出左表的所有行,同时将相应与右表相关的行组合在一起。如果右表中没有与左表相关的行,则右表会以NULL值填充。左连接的语法格式如下:

SELECT column_name(s) 
FROM table1 
LEFT JOIN table2 
ON table1.column_name = table2.column_name;

示例2:假设有两个表student和score,此时要查询所有学生的学号和分数,无论该学生是否有分数记录,应使用左连接查询:

SELECT s.student_id, sc.score 
FROM student s 
LEFT JOIN score sc 
ON s.student_id = sc.student_id;

右连接(Right Join)

右连接与左连接相反,可以查询到右表的所有行,同时将相应的与左表相关的行组合在一起。如果左表中没有与右表相关的行,则左表会以NULL值填充。右连接的语法格式如下:

SELECT column_name(s) 
FROM table1 
RIGHT JOIN table2 
ON table1.column_name = table2.column_name;

示例3:假设有两个表student和score,此时要查询每个课程的分数和学生姓名,无论该课程是否有学生选课,应使用右连接查询:

SELECT s.name, sc.score 
FROM student s 
RIGHT JOIN score sc 
ON s.student_id = sc.student_id;

以上就是MySQL的内连接、左连接和右连接查询的详细攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql的内连接,左连接和右链接查询详解 - Python技术站

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

相关文章

  • SQL语句实现查询当前数据库IO等待状况

    要查询当前数据库IO等待状况,可以借助于SQL Server自带的动态管理视图(dm_io_pending_io_requests和dm_io_virtual_file_stats),以下是详细的攻略步骤: 1. 查询dm_io_pending_io_requests视图 dm_io_pending_io_requests视图返回所有正在等待IO完成的请求的…

    database 2023年5月21日
    00
  • SQL Server数据库生成与执行SQL脚本详细教程

    SQL Server数据库生成与执行SQL脚本详细教程 1. 生成SQL脚本 在SQL Server中,生成SQL脚本可以通过以下几个步骤实现。 打开SQL Server Management Studio(SSMS)工具,连接到需要生成SQL脚本的数据库。 选择需要生成脚本的对象,如表、视图、存储过程等,在对象右键菜单中选择“脚本生成”->“创建”或…

    database 2023年5月21日
    00
  • navicatdesignquery.sql.bak系统找不到指定路径错误的解决方法

    当使用 Navicat 进行数据库的查询、编辑等操作时,有时会遇到 “navicatdesignquery.sql.bak系统找不到指定路径” 这样的错误提示,这种情况一般是由于 Navicat 自身或操作系统的问题所造成的,但是这并不意味着我们就无法解决这个问题。下面是解决这个问题的详细攻略: 问题原因分析: Navicat 自身问题,如升级版本或者重装 …

    database 2023年5月22日
    00
  • MySQL函数date_format()日期格式转换的实现

    MySQL函数 date_format() 可以把日期时间类型的数据按照指定的格式进行转换和格式化,使其更符合我们需要展示的要求。 语法 DATE_FORMAT(date, format) 参数说明: date: 需要转换格式的日期/时间数据。 format: 转换后的日期/时间格式,可使用特定的格式控制符。 格式控制符 下面是常见的格式控制符: 格式控制符…

    database 2023年5月22日
    00
  • php实现PDO中捕获SQL语句错误的方法

    要在 PHP PDO 中捕获 SQL 语句错误信息,可以使用 try 和 catch 结构来处理异常。 首先在 PHP 中使用 PDO 创建数据库连接,为了在数据库操作时收集异常信息,设置 PDO 属性 PDO::ATTR_ERRMODE 为 PDO::ERRMODE_EXCEPTION。 try { $dbh = new PDO($dsn, $userna…

    database 2023年5月18日
    00
  • linux NFS安装配置及常见问题、/etc/exports配置文件、showmount命令

    Linux NFS安装配置及常见问题攻略 安装NFS服务 在CentOS系统中,使用以下命令安装nfs-utils工具: yum install nfs-utils 启动NFS服务: systemctl start nfs-server 设置开机自启动NFS服务: systemctl enable nfs-server 配置NFS服务 编辑/etc/expo…

    database 2023年5月21日
    00
  • 使用Springboot整合redis与mysql

    使用layui实现前台页面,实现用户的增删改查 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 主要技术:SpringBoot、redis,mysql,swagger框架与layui前段框架 SpringBoot版本:2.2.6   实现步骤如下: 1.添加依赖 <dependency> <groupId>org.spr…

    Redis 2023年4月13日
    00
  • MySQL: LEAVE Statement

    https://www.techonthenet.com/mysql/loops/leave.php   This MySQL tutorial explains how to use the LEAVE statement in MySQL with syntax and examples. Description In MySQL, the LEAVE …

    MySQL 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部