mysql 多表混全_mysql--浅谈多表查询1

这是对自己学习燕十八老师mysql教程的总结,非常感谢燕十八老师。

依赖软件:mysql5.6

系统环境:win

连接查询

在谈连接查询之前我们需要对数学上的笛卡尔积有一定的了解

现在有两个集合m和n

m = (m1,m2,.....mx)

n =(n1,n2,.....ny)

m*n得到的笛卡尔积有多少个元素?

答:m*n有x*y个元素

连接查询有以下类型

1、左连接

2、右连接

3、内连接

连接查询的作用

从2张或多张表中取出有关联的数据

3种连接查询的详细说明

1、左连接

A left join B on 条件;

这样形成了一个结果集,可以看成一张表 设为C

C表有A,B中的所有列;可以做所有表的操作

考虑到兼容问题和理解上的容易程度都推荐用左连接

# 语法Select查询项from表名left join 表名 on 表名.列名 =表名.列名

# 我是这样理解左连接的:左表不动,右表来匹配

# 示例

# 用左连接取出两表cat_id 对应的cat_nameselectgoods_id,goods.cat_id,category.cat_id,cat_name,goods_namefromgoodsleft join category on goods.cat_id=category.cat_id;

2、右连接

左右连接可以互换

A left join B <==> B right join A

A right join B on 条件;

这样形成了一个结果集,可以看成一张表 设为C

C表有A,B中的所有列;可以做所有表的操作

# 语法Select查询项from表名right join 表名 on 表名.列名 =表名.列名

# 我是这样理解右连接的:右表不动,左表来匹配

# 示例

# 用右连接取出两表cat_id 对应的cat_nameselectgoods_id,goods.cat_id,category.cat_id,cat_name,goods_namefromcategoryright join goods on category.cat_id=goods.cat_id;

3、内连接

B inner join A on 条件;

这样形成了一个结果集,可以看成一张表 设为C

C表有A,B中的所有列;可以做所有表的操作

# 语法Select查询项from表名inner join 表名 on 表名.列名 =表名.列名

# 我是这样理解内连接的:右左连接的交集

# 示例

# 用内连接取出两表cat_id 对应的cat_nameselectgoods_id,goods.cat_id,category.cat_id,cat_name,goods_namefromgoodsinner join category on category.cat_id=goods.cat_id;

小练习

要求:

Match的hostTeamID与guestTeamID都与Team中的teamID关联

查出 2006-6-1 到2006-7-1之间举行的所有比赛,并且用以下形式列出:

拜仁 2:0 不来梅 2006-6-21

建表时特别主要match是mysql的关键字

selectt1.teamName,match_Result,t2.teamName,match_Timefrommatch1left join Team ast1on match1.hostTeamID=t1.teamIDleft join Team ast2on match1.guestTeamID =t2.teamIDwhere match_Time between '2006-06-01 and'2006-07-01';

联合查询

union查询

使用条件:只要列数一样即可合并(唯一要求)

语法:

sql1 union sql2 表操作

union对重复行的处理:union会去重,union all 不去重复

# 示例1

# 用union取出第4个栏目的商品,第5个栏目的商品,并按价格升序排列select cat_id,shop_price,goods_name from goods where cat_id=4

union

select cat_id,shop_price,goods_name from goods where cat_id=5

order by shop_price asc;

内层的order by 如果没有影响结果集的结果则将被优化过滤掉

# 示例2

# 用union查出第三个栏目下价格前三高的商品,和第四个栏目下价格前2高的商品

(select cat_id,shop_price,goods_name fromgoodswhere cat_id=3 order by shop_price desc limit 3)union(select cat_id,shop_price,goods_name fromgoodswhere cat_id=4 order by shop_price desc limit 2);

小练习

要求:

将两张结构一样的表相同id的值相加,返回所有id和值

# 第一步 将两表合并成一张表,即表cselect id,num froma

union allselect id,num fromb

# 第二步对表c from型子查询操作,select id,sum(num) asnumfrom (select id,num froma

union allselect id,num from b) asc

group by id;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鼠标固定在屏幕中间_无线电竞黑科技,雷柏VT950Q游戏鼠标评测

雷柏作为目前小有声誉的PC外设品牌&#xff0c;其定位高性能游戏领域的VT系列产品&#xff0c;想必大家也比较熟悉了。VT系列的产品除了有超强的性能以及出色的设计感&#xff0c;同时还都是性价比非常高的产品&#xff0c;即便是采用了旗舰级传感器&#xff0c;定位最为高端的…

谈论源码_5,000名开发人员谈论他们的薪水

谈论源码Let’s dive into the most interesting results from the O’Reilly 2016 Salary Survey of 5,000 developers (which excluded managers and students).让我们来看看OReilly 2016年薪金调查对5,000名开发人员(其中不包括经理和学生)最有趣的结果。 性别工资差距是真…

WebSnapshotsHelper(HTML转换为图片)

1 /// <summary>2 /// WebBrowser Url生成图片3 /// HTML转图片4 /// </summary>5 public class WebSnapshotsHelper6 {7 Bitmap m_Bitmap;8 string m_Url;9 int m_BrowserWidth, m_BrowserHeight, m_ThumbnailWidth,…

两个多项式相乘求解系数数组算法

题目描述&#xff1a; 给出两个多项式&#xff0c;最高次幂分别为n和m&#xff0c;求解这两个系数相乘得到的系数数组。 分析&#xff1a; 最高次幂如果是m和n&#xff0c;那么他们相乘得到的系数数组的最高次幂一定是nm&#xff0c;对于其他的系数&#xff0c;不妨设a[],b[]是…

synchronized 和 reentrantlock 区别是什么_JUC源码系列之ReentrantLock源码解析

目录ReentrantLock 简介ReentrantLock 使用示例ReentrantLock 与 synchronized 的区别ReentrantLock 实现原理ReentrantLock 源码解析ReentrantLock 简介ReentrantLock 是 JDK 提供的一个可重入的独占锁&#xff0c;独占锁&#xff1a;同一时间只有一个线程可以持有锁可重入&am…

gulp 和npm_为什么我离开Gulp和Grunt去看npm脚本

gulp 和npmI know what you’re thinking. WAT?! Didn’t Gulp just kill Grunt? Why can’t we just be content for a few minutes here in JavaScript land? I hear ya, but…我知道你在想什么 WAT &#xff1f;&#xff01; 古尔普不是杀死了咕unt吗&#xff1f; 为什么…

mysql8.0递归_mysql8.0版本递归查询

1.先在mysql数据库添加数据DROP TABLE IF EXISTS dept;CREATE TABLE dept (id int(11) NOT NULL,pid int(11) DEFAULT NULL,name varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,date datetime(0) DEFAULT NULL,PRIMARY KEY (id) USING BTREE) ENGINE…

js 轮播插件

flexslider pc插件 个人用过flickerplate 移动端插件 个人用过个人觉得比较好的移动端插件swiper http://www.swiper.com.cn/ 用过个人觉得比较好的pc端插件待定

计算机中的字符编码

字符编码 什么是计算机编码 计算机只能处理二进制的数据&#xff0c;其它的数据都要进行转换&#xff0c;但转换必须要有一套字符编码(是字符与二进制的一个对应关系)。常用的字符&#xff1a;a-z、0-9、其它的符号等&#xff0c;计算机也不能直接处理。 &#xff08;字符编码类…

致力微商_致力于自己。 致力于公益组织。

致力微商by freeCodeCamp通过freeCodeCamp 致力于自己。 致力于公益组织。 (Commit to Yourself. Commit to a Nonprofit.) In case you missed it, our October Summit was jam-packed with several big announcements about our open source community.如果您错过了它&#…

应急照明市电检测_应急照明如何供电? 如何接线? 图文分析!

对于大部分刚接触建筑电气设计的工作者来说&#xff0c;应急照明的强启原理一直都是很头疼的问题。由于不知道应急照明的强启原理&#xff0c;所以&#xff0c;应急灯具应该用多少根线&#xff0c;其实也就无从谈起。下面以文字和图片结合的方式来说明应急灯怎么接线的&#xf…

win10网速慢

升级到win10之后发现网速特别慢&#xff0c;搜了下&#xff0c;网上的解决办法果然好使&#xff0c;按照如下操作即可。 返回桌面&#xff0c;按WINR键组合&#xff0c;运行gpedit.msc 打开组策略 依次展开管理模板-》网络-》QoS数据计划程序-》限制可保留宽带&#xff0c;双击…

ubuntu安装nodejs

下载nodejs https://nodejs.org/dist/v4.6.0/node-v4.6.0-linux-x64.tar.gz 解压 tar -zxvf node-v4.6.0-linux-x64.tar.gz 移动到/opt/下 mv node-v4.6.0-linux-x64 /opt/ 创建链接 ln -s /opt/node-v4.6.0-linux-x64/bin/node /usr/local/bin/node 转载于:https://www.cnblog…

android实用代码

Android实用代码七段&#xff08;一&#xff09; 前言 这里积累了一些不常见确又很实用的代码&#xff0c;每收集7条更新一次&#xff0c;希望能对大家有用。 声明 欢迎转载&#xff0c;但请保留文章原始出处:)     博客园&#xff1a;http://www.cnblogs.com 农民伯伯&…

mysql 全文本检索的列_排序数据列以检索MySQL中的最大文本值

为此&#xff0c;您可以将ORDER BY与一些聚合函数right()一起使用。让我们首先创建一个表-create table DemoTable1487-> (-> StudentCode text-> );使用插入命令在表中插入一些记录-insert into DemoTable1487 values(560);insert into DemoTable1487 values(789);in…

关于长寿_FreeCodeCamp可以帮助您更长寿

关于长寿by Christopher Phillips克里斯托弗菲利普斯(Christopher Phillips) 免费代码营可能帮助您长寿 (Free Code Camp Might Help You Live Longer) Since I started my web development journey with Free Code Camp, I’ve felt more awake, more alert, and able to pro…

python世界你好的输出便携电源适配器_65W PD输出,Thinkplus USB-C便携电源适配器(PA65)开箱评测...

包装盒底盖面为红色&#xff0c;标注了产品的相关参数&#xff1a;型号&#xff1a;PA65&#xff1b;输入&#xff1a;100V-240V~50/60Hz 1.5A&#xff1b;输出&#xff1a;5V/3A、9V/3A、12V/3A、15V/3A、20V/3.25A&#xff1b;制造商&#xff1a;南京博兰得电子科技有限公司&…

归并排序与逆序对

在刷题的过程中碰到了关于无序序列的逆序对统计的问题。 直接暴力会超时&#xff0c;然后搜索了一下算法&#xff0c;发现可以通过归并排序的思想来做到这个统计的过程。看代码的时候&#xff0c;不知道自己的理解力不够还是不熟悉别人的代码&#xff0c;反正是看不懂。无奈之下…

c#获取pdf文件页数

引用命名空间&#xff1a;using iTextSharp.text.pdf; string filePath Server.MapPath("/upload/123.pdf"); //文件的物理路径PdfReader reader new PdfReader(filePath);int iPageNum reader.NumberOfPages; //文件页数reader.Close();Response.Write("文件…

VS2015 Cordova Ionic移动开发(五)

一、创建侧边菜单和导航项目 1.使用VS创建一个Ionic空项目&#xff0c;同时创建一个Ionic SideMenu和Ionic Tabs项目。将SideMenu和Tabs项目里的templates和js文件合并到空项目里&#xff0c;修改js对应的代码即可。完整项目工程如下&#xff1a; 2.App.js代码修改如下&#xf…