首页 > 数据库 >mysql子查询跟关联查询

mysql子查询跟关联查询

时间:2024-09-26 11:46:38浏览次数:1  
标签:product price sale 视图 关联 mysql 查询 type

MySQL的复杂查询

复杂查询主要包括视图、子查询和关联子查询

1.视图

先介绍一下视图:

  • ·从SQL的角度来看,视图和表是相同的,两者的区别在于表中存储的是实际的数据,而视图中保存的是SELEC

T语句(视图本身并不存储数据)。

  • 使用视图可以轻松完成跨多表查询数据等复杂操作。
  • 视图中不能包含ORDER BY和对视图的更新操作(INSERT、DELETE、UPDATE

1.1创建视图的方法

CREATE VIEW 视图名称(<视图列名1><视图列名2><视图列名3>......)
AS
<SELECT语句>

例如:创建一个视图

CREATE VIEW productsum(product type,cnt product)
AS
SELECT product type,COUNT(*)
FROM product
GROUP BY product type;

 

2.关联子查询

介绍一下关联子查询:
关联子查询会在细分的组内进行比较时使用。
关联子查询和GROUP BY子句一样,也可以对表中的数据进行切分。
关联子查询的结合条件如果未出现在子查询中就会发生错误。
例如:我们查询各种商品种类中高于该种类的平均销售单价的商品。

--发生错误的语句
SELECT product id,product name,sale price
FROM product
WHERE sale_price >(SELECT AVG(sale price)FRoM product GRouP BY product type);--这里会报错,因为不是唯一值

正确的方式应该是:

SELEcT product type,product name,sale price
登录后复制
FRoM product AS P1
WHERE sale price >(SELECT AVG(sale price)FRoM product As P2
                   WHERE P1.product type=P2.product type
                   GROUP BY product type);

结果如下:

 这里起到的关键作用就是在子查询中添加的WHERE子句条件。该条件的意思就是在同一商品种类中对各商品的销
售单价和平均单价进行比较。

 

标签:product,price,sale,视图,关联,mysql,查询,type
From: https://www.cnblogs.com/handsome-1998/p/18433151

相关文章

  • Linux CentOS 7.9 系统 免费安装 MySQL 8.0.31:简易指南
    一:MySQL介绍在当今数字化时代,MySQL已成为最流行的开源数据库之一,无论是用于开发网站应用程序、数据存储或其他多用途的数据库需求,MySQL以其强大的功能和灵活性受到了广泛的青睐。本文将带领你通过简单的步骤,免费安装MySQL8.0.31,助你轻松搭建高效的数据库环境!二:MySQL......
  • Mysql 常用方法和函数(查询)
    查询所有记录SELECT*FROMsys_user;加别名SELECTsys_user_id用户主键,sys_user_name登录名,sys_user_password密码,sys_user_phone手机号,sys_user_email邮箱,sys_user_card身份证号,sys_user_address地址FROMsys_user;查询用户主键为2的数据SELECT*F......
  • .NetCore MySqlException 多线程中(There is already an open DataReader associated w
    问题描述:其实标题只是遇到问题的其中之一,遇到三种异常信息如下:Lockwaittimeoutexceeded;tryrestartingtransaction大概意思:超过锁定等待超时;尝试重新启动事务 ThereisalreadyanopenDataReaderassociatedwiththisConnectionwhichmustbeclosedfirst.大......
  • Ubuntu 安装Mysql+Redis+Nginx
    一、安装MySql1.新系统需要安装一下更新aptupdate-yaptdist-upgrade-yaptinstall-ywget2.安装mysql,并修改配置aptinstall-ymysql-servermysql配置文件通常位于vi/etc/mysql/mysql.conf.d/mysqld.cnf在[mysqld]把bind改成0.0.0.0,增加连接数,修改mode,开......
  • MySQL8物理一键备份和恢复脚本分享
    MySQL8物理一键备份和恢复脚本分享原创 我科绝伦 小周的数据库进阶之路  2024年09月23日00:01 重庆热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者频率比较的内容,希望......
  • 基于SpringBoot+MySQL+SSM+Vue.js的智能停车计费系统设计与实现(附论文)
    获取见最下方名片信息获取见最下方名片信息获取见最下方名片信息演示视频基于SpringBoot+MySQL+SSM+Vue.js的智能停车计费系统设计与实现(附论文)技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC......
  • 教你玩转MySQL8物理备份利器Xtrabackup
    教你玩转MySQL8物理备份利器Xtrabackup原创 我科绝伦 小周的数据库进阶之路  2024年09月22日00:00 重庆热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者频率比较的内容,......
  • MySQL root密码忘记解决
    skip-grant-tables的解法首先,关闭实例这里,只能通过killmysqld进程的方式。注意:不是mysqld_safe进程,也切忌使用kill-9。#ps-ef|grepmysqldroot62206171008:14pts/000:00:00/bin/shbin/mysqld_safe--defaults-file=my.cnfmysql634762200......
  • Mysql-字符串函数
    UUIDselectmd5(uuid())截取LEFT(str,len)返回字符串str的最左面len个字符。RIGHT(str,len)返回字符串str的最右面len个字符。SUBSTRINGSUBSTR(name,3,5)SUBSTR(name,3)SUBSTRING(strFROMpos)SUBSTRING_INDEX(str,delim,count)返回从字符串str的第count个出现......
  • mysql的索引
    InnoDB是mysql的默认引擎,索引原理是B+树。InnoDB的索引方式首先,数据库的目录也是很庞大的,不能放在内存里。而磁盘的读写速度是比内存慢几个数量级。而且顺序读一块比随机I/O划算,也就是局部性原理。所以:InnoDB把数据和目录都放在默认大小16KB的数据页中。每次读都读一个页......