iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL三表联合查询的方法是什么
  • 379
分享到

MySQL三表联合查询的方法是什么

2023-07-05 08:07:26 379人浏览 八月长安
摘要

这篇文章主要介绍了MySQL三表联合查询的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mysql三表联合查询的方法是什么文章都会有所收获,下面我们一起来看看吧。一、题目概述给定三张表(学生表、科目表

这篇文章主要介绍了MySQL三表联合查询的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mysql三表联合查询的方法是什么文章都会有所收获,下面我们一起来看看吧。

一、题目概述

给定三张表(学生表、科目表、成绩表),查出各科成绩最高的学生的信息(学号、姓名、科目名称、成绩)。三张表下所示。

MySQL三表联合查询的方法是什么

MySQL三表联合查询的方法是什么

MySQL三表联合查询的方法是什么

二、查询思路

查询出各科的最高成绩

select max(s.`Score`) as MaxScore from score s group by s.`SubjectId`

查询出各科的最高成绩及对应的科目和学生编号(关键步骤)

此处通过子查询完成。根据步骤1中查出的最高成绩,再查成绩表中成绩等于最高成绩且科目相对应的记录

select b.* from (   select max(s.`Score`) as MaxScore,s.`SubjectId` as SubId from score s group by s.`SubjectId`)   f,score b where b.`SubjectId` = f.SubId and b.`Score` = f.MaxScore

该步骤的结果如下所示:

MySQL三表联合查询的方法是什么

查询出各科的最高成绩及对应的科目名称和学生编号

步骤2只涉及了成绩表,由于该表不含成绩名称,需要与科目表进行联表查询

SELECT b.`StudentId`,f.SubName,b.`Score` FROM (   SELECT MAX(s.`Score`) AS MaxScore,s.`SubjectId` AS SubId,sub.`Name` AS SubName   FROM score s LEFT JOIN SUBJECT AS sub ON s.`SubjectId` = sub.`SubjectNo`    GROUP BY s.`SubjectId`)f,score b WHERE b.`SubjectId` = f.SubId AND b.`Score` = f.MaxScore

该步骤的结果如下所示:

MySQL三表联合查询的方法是什么

查询出各科的最高成绩及对应的科目名称和学生姓名

同理,再与学生表进行一次联表查询,查出学生姓名

SELECT stu.Name,t.* FROM     (SELECT b.`StudentId` AS Sid,f.SubName AS SubName,b.`Score` AS Score FROM          (SELECT MAX(s.`Score`) AS MaxScore,sub.`SubjectNo` AS SubNo,sub.`Name` AS SubName           FROM score s LEFT JOIN SUBJECT AS sub ON s.`SubjectId` = sub.`SubjectNo` GROUP BY sub.`SubjectNo`)     f,score b WHERE b.`StudentId` = f.SubNo AND b.`Score` = f.MaxScore) t LEFT JOIN student stu ON stu.StudentNo = t.Sid ORDER BY t.Score

最终结果如下:

MySQL三表联合查询的方法是什么

三、错误总结

完成本题中遇到的一些错误,简单总结以下

对group by的结果理解有问题。下面的sql查询尝试查出最高成绩对应的学生Id,

SELECT s.`StudentId` AS Sid,MAX(s.`Score`) AS MaxScore,sub.`Name` AS SubName FROM score s LEFT JOIN SUBJECT AS sub ON s.`SubjectId` = sub.`SubjectNo` GROUP BY s.`SubjectId`

实际上SQL查出的学生Id都是3,即对应最高成绩的Id是错误的。原因在于group by只是在select的查询结果基础上根据分组指定的关键字进行分组,并将分组后的若干记录的中第一条进行展示,此处正好语数外分组的第一条记录的学生Id都是3,因此是错误的。总结来说group by 只进行了分组,记录中的其他字段需要另外想办法查询。

附:sql 三个表联合查询(三表左联查询)

关于在一个表中显示三个数据库表字段的查询。

首先要找的三个表中字段的对应关系,以哪一张表为主表(其他表字段增添这个主表上)作为显示页面上。

上代码

查询主表:csb_accessories_bjgh的全部,csb_accessories_bjqd表,csb_asset_directory表,的aname,atypes,/assetname,assettypes的字段。

关系:csb_accessories_bjgh.accessoriesid = csb_accessories_bjqd.accessoriesid

以及 csb_accessories_bjgh.assetid = csb_asset_directory.assetid

这是sql代码

SELECTcsb_accessories_bjgh.*,csb_accessories_bjqd.aname,csb_accessories_bjqd.atypes,csb_asset_directory.assetname,csb_asset_directory.assettypesFROM(( csb_accessories_bjgh LEFT JOIN csb_accessories_bjqd ON csb_accessories_bjgh.accessoriesid = csb_accessories_bjqd.accessoriesid ) LEFT JOIN csb_asset_directory ON csb_accessories_bjgh.assetid = csb_asset_directory.assetid )WHEREcsb_accessories_bjgh.id IS NOT NULL

关于“mysql三表联合查询的方法是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“MySQL三表联合查询的方法是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL三表联合查询的方法是什么

本文链接: https://www.lsjlt.com/news/350744.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL三表联合查询的方法是什么
    这篇文章主要介绍了MySQL三表联合查询的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL三表联合查询的方法是什么文章都会有所收获,下面我们一起来看看吧。一、题目概述给定三张表(学生表、科目表...
    99+
    2023-07-05
  • MySQL两张表联合查询的方法是什么
    MySQL可以通过使用JOIN语句将两张表联合查询,具体方法如下: SELECT * FROM table1 JOIN ...
    99+
    2024-04-09
    MySQL
  • oracle两张表联合查询的方法是什么
    在Oracle中,可以使用JOIN语句将两张表联合查询。根据需要,可以使用不同类型的JOIN,包括内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT JOIN)和交叉连接(CROSS JOIN)。以下是一个使用INN...
    99+
    2023-08-09
    oracle
  • mysql多表联合查询基本语法是什么
    mysql多表联合查询基本语法是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql多表联合查询语句是:使用sel...
    99+
    2024-04-02
  • Mysql联合查询是什么
    MySQL联合查询即“UNION”是一种用于将多个SELECT语句的结果合并成一个结果集的SQL操作,可以将多个表或视图中的数据合并为一个结果集,并去除重复的记录,UNION操作会将多个SELECT语句的结...
    99+
    2024-01-29
    mysql mysql联合查询 联合查询 多表联合查询
  • MySQL三表联合查询操作举例
    目录一、题目概述二、查询思路三、错误总结附:sql 三个表联合查询(三表左联查询)总结一、题目概述 给定三张表(学生表、科目表、成绩表),查出各科成绩最高的学生的信息(学号、姓名、科目名称、成绩)。三张表下所示。 ...
    99+
    2023-03-06
    sql三表查询 MySQL三表连接 三表连接查询
  • MySQL三种关联查询方式是什么
    这篇文章主要讲解了“MySQL三种关联查询方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL三种关联查询方式是什么”吧!看看下面三个关联查询...
    99+
    2024-04-02
  • oracle联表查询的方法是什么
    在Oracle中,联表查询可以通过使用SQL语句中的关键字JOIN来实现。常见的联表查询方式包括: 内连接:使用INNER JOI...
    99+
    2024-04-09
    oracle
  • MySQL联合查询(多表查询)
    一、内连接 select *from 表1 [ inner | cross ] join 表2 [ on过滤条件 ] [ where查询条件 ] ; [ inner | cross ]: join 内连接关键字(必须要有...
    99+
    2023-09-14
    mysql 数据库 database
  • 【MySQL】MySQL表之联合查询(多表查询)
    📌前言:本篇博客介绍MySQL数据库的MySQL表之联合查询(多表查询),学习MySQL之前要先安装好MySQL,如果还没有安装的小伙伴可以看看博主前面的博客,里面有详细的安装教程。 那我们废话不多说,直接进入主体!...
    99+
    2023-08-16
    mysql 数据库 java
  • mysql多表关联查询优化的方法是什么
    在优化MySQL多表关联查询时,可以采取以下方法: 确保表中的相关字段有索引:在进行多表关联查询时,通常会使用到相关字段进行连接...
    99+
    2024-04-09
    mysql
  • mongodb三个表查询的方法是什么
    在MongoDB中,可以使用以下方法来查询三个表:1. 使用聚合框架:聚合框架提供了一种强大的方式来处理多个表之间的关联查询。您可以...
    99+
    2023-08-24
    mongodb
  • sql两表关联查询的方法是什么
    在SQL中,两个表之间的关联查询通常通过使用JOIN子句来实现。以下是几种常见的关联查询方法: INNER JOIN:内连接,返回...
    99+
    2024-03-06
    sql
  • 【MySQL】聚合查询 + 多表联合查询(重点)
    文章目录 前言一、聚合查询1, 聚合函数2, 聚合函数使用示例3, GROUP BY 子句4, HAVING 子句 二、联合查询(重点)1, 笛卡尔积2, 内连接2.1, 示例12...
    99+
    2023-09-29
    mysql 数据库 聚合查询 联合查询 内连接
  • mongodb多集合关联查询的方法是什么
    在 MongoDB 中,多集合关联查询可以通过以下几种方法来实现:1. 嵌套文档:将一个集合的文档作为另一个集合的字段嵌套存储。这种...
    99+
    2023-09-12
    mongodb
  • MySQL多表查询的方法是什么
    这篇“MySQL多表查询的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL多表查询的方法是什么”文章吧。多...
    99+
    2023-07-04
  • oracle两个表关联查询的方法是什么
    在Oracle中,可以使用SQL语句的JOIN关键字来将两个表进行关联查询。 例如,假设有两个表A和B,我们想要根据这两个表中的某个...
    99+
    2024-04-09
    oracle
  • access多表合并查询的方法是什么
    在多表合并查询中,我们可以使用以下方法来访问所需的数据: 使用 JOIN 子句:使用 JOIN 子句将两个或多个表合并在一起,然...
    99+
    2024-04-02
  • MySQL临时表查询的方法是什么
    在MySQL中,我们可以使用CREATE TEMPORARY TABLE语句来创建临时表,并对其进行查询操作。临时表在会话结束时会自...
    99+
    2024-05-06
    mysql
  • SQLServer中的联合查询是什么
    在SQL Server中,联合查询(UNION)是一种用于合并多个SELECT语句的结果集的方法。通过联合查询,可以将两个或...
    99+
    2024-03-11
    SQLServer
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作