MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)

摘要:
首先创建一个m表mysql>createtablem(->midint,-&gt,hidint,->giint,-gt;mresvarchar(10),-<马提亚酸盐->)发动机myisamcharsetutf8;QueryOK,0低扫描(0.07秒)mysql>插入m->值->(1,

先建立一张 m 表

mysql> create table m (
    -> mid int,
    -> hid int,
    -> gid int,
    -> mres varchar(10),
    -> matime date
    -> )engine myisam charset utf8;
Query OK, 0 rows affected (0.07 sec)


mysql> insert into m
-> values
-> (1, 1, 2, '2:0', '2018-08-03'),
-> (2, 2, 3, '1:2', '2018-08-03'),
-> (3, 3, 1, '2:5', '2018-08-04'),
-> (4, 2, 1, '3:2', '2018-08-05');
Query OK, 4 rows affected (0.00 sec)

再建立一个 t 表

mysql> create table t(
    -> tid int,
    -> tname varchar(10)
    -> )engine myisam charset utf8;
Query OK, 0 rows affected (0.07 sec)


mysql> insert into t
-> values
-> (1, '甲'),
-> (2, '乙'),
-> (3, '丙');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第1张

题目要求:把hidgid中的数字替换成tid中的tname

 (一)根据m表和t表左连接,把hid替换成t表的tname

 MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第2张

 (二)把(一)的结果集当成一张表再做一次左连接

      把gid替换成t表的tname

 MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第3张

或左连接两张表(用两次left join)

MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第4张

union

查出价格低于100元或价格高于4000元的商品

or

MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第5张

或者用union

 MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第6张

 

当取出的结果集,列名不一致时,依然可以用union

MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第7张

但是当的数量不等时,就无法合并

 MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第8张

用union,取出cat_id = 4 和cat_id = 5 的商品,并按照价格升序排列 (union后的结果集依然可以看成一个表)

 MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第9张

MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第10张

取cat_id = 3的价格前三高的商品以及cat_id = 4的前两高的商品

 MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第11张

如果这么写就会报错

 MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第12张

(一定要用括号将一句的select放在一起)

 并且union在遇到重复行时,会取出重复行

 MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第13张

MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)第14张

免责声明:文章转载自《MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Centos6.5 rpm方式指定目录安装JDKgvim中的gvimrc和vimrc下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

IdentitiServser4 + Mysql实现Authorization Server

 Identity Server 4官方文档:https://identityserver4.readthedocs.io/en/latest/ 新建2个asp.net core 项目使用空模板 Auth 身份认证服务 Client客户端 Auth项目打开安装相关依赖  IdentityServer4 和 EF 实体框架 Mysql EF Provid...

超简单的图文并茂Linux上使用yum安装Mysql(Aliyun Linux release 2.1903 LTS)

首先登录进入你的Linux服务器 查看是否已安装mysql rpm -qa|grep mysql 查看自己的服务器版本 cat /etc/redhat-release 打开MySQL Yum存储库下载需要的文件包(直达链接) 我选择了第二个版本 复制下载文件的全名然后拼接一下使用wget下载:mysql80-community-release-e...

根据javabean转换为mysql建表语句与mapper内容

一般上,我们会使用数据库表转换为javabean、dao、或是mapper,就叫逆向工程。做项目时一般也是先设计数据库,再进行系统开发,所以一般使用逆向工程。 但我这边由于工作临时的需要,需要将javabean转换为建表语句和Mybatis的Mapper文件,于是上网搜了一下,大部分是做一个工具类进行bean解析输出的。 根据自身项目命名设计要求,将jav...

如何将frm格式MYD格式MYI格式文件导入MySQL中

frm,myd,myi是属于MySQL存储数据的文件,phpMyAdmin是无法导入的。 phpMyAdmin支持的文件格式为sql文件。 其实很简单: 1.找到你的mysql的安装目录下的data文件夹,新建一个文件夹,文件夹的名称是你想设计的库的名称,把这些文件(frm,myd,myi格式的文件)放到此文件夹中。 提示:也可以使用mysql管理工具创建...

MySQL主从及主主环境部署

主从同步 主机环境 mysql的安装可以参考:https://www.cnblogs.com/brianzhu/p/8575243.htmlCentos7版本master:192.168.192.128 slave: 192.168.192.129 注意下面几点:1)要保证同步服务期间之间的网络联通。即能相互ping通,能使用对方授权信息连接到对方数据库(...

Jenkins操作手册 巨详细,一篇足矣!

一、持续集成相关概念 1.1、什么是持续集成? 随着软件开发复杂度的不断提高,团队开发成员间如何更好的协同工作以确保软件开发的质量已经成为开发过程中不可回避的问题。尤其是近年来敏捷开发在软件领域越来越火,如何能在不间断变化的需求中快速适应和保证软件的质量显得尤其重要。持续集成正是针对这一问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至...