多表联查

多表联查

多个有关系的表可以同时查询,语法和单表查询基本一致

select

from 表1,表2,...

where 拼接条件 and 其它条件

group by

having

order by

limit;

注意:

1.from 表1,表2,...:笛卡尔积的结果

如果一张表不需要筛选,两张表以上,要做筛选,

n张表:n-1个筛选条件,关联的列值相等

2.如果查询多个表同名的列,需要表名来区分

3.建议多表联查时,每个列都加上表名做区分

4.可以给表取别名:FROM 表 别名,表 别名...一旦起别名,只能使用别名

笛卡尔积:

对应到表:

from 表1: 这张表的全部数据

from 表1,表2:

列:表1+表2

行:表1每一行和表2每一行拼接,  乘关系

from 多张表:    列相加    行相乘

多表联查--表连接方式

内连接

查询出符合条件的结果

语法1:简单方便

select 字段

from 表1,...,表n

where 拼接条件 and 其它条件;

语法2:

select 字段

from 表1 [inner] join 表2

on 拼接条件

inner join 表3

on 拼接条件

...

where 其它条件;

:查询41号部门员工名字,职位,部门名

语法1:

select e.first_name,e.title,d.name

from s_emp e,s_dept d

where e.dept_id=d.id and e.dept_id=41;

语法2:

select e.first_name,e.title,d.name

from s_emp e inner join s_dept d

on e.dept_id=d.id

where e.dept_id=41;

外连接

基于内连接的结果

左外连接(掌握)

查询两张表,分为左表,右表

基于内连接的结果,同时包含左表未匹配的结果,右表对应的列值为null

语法:

select 字段

from 左表 left [outer] join 右表

on 拼接条件

where 其它条件;

:查询"每个"客户的名字,对应的销售名字

select c.name,e.first_name

from s_customer c left outer join s_emp e

on c.sales_rep_id=e.id;

右外连接(可以用左外来替换,只要掌握左外即可)

查询两张表,分为左表,右表

基于内连接的结果,同时包含右表未匹配的结果,左表对应的列值为null

语法:

select 字段

from 左表 right [outer] join 右表

on 拼接条件

where 其它条件;

:查询"每个"客户的名字,对应的销售名字

select c.name,e.first_name

from s_emp e right outer join s_customer c

on c.sales_rep_id=e.id;

全(外)连接(mysql不支持)

基于内连接的结果,同时包含左表未匹配的结果,右表未匹配的结果,另外一侧值是null

特殊的连接:自连接

自己和自己连接,如果列引用的是自己表的列,就要自己和自己连接查询

结果集集合运算符:

union        union all

前提:两个结果集,列一致,顺序一致,类型相似

union:对两个结果集求并集,去重

union all:求并集,不去重, 叠加

查询的嵌套

查询中使用查询,内部的查询称为子查询

注意:查询中的查询要用()括起来通过查询的嵌套,可以是查询变得很复杂,但是实际开发中,不是越复杂越好,而是越简单越好,可以把嵌套查询拆分成多步来完成,由程序一步一步调用完成.

where中嵌套子查询

:查询和‘Ben’同区域的员工

select *

from s_emp

where dept_id in(

select id

from s_dept

where region_id=(

select id

from s_region

where id=(

select region_id

from s_dept

where id=(

select dept_id

from s_emp

where first_name like 'Ben'

)

)

)

);

注意:

如果子查询返回多行 如果子查询返回一行相等用in 相等用=


大于 大于>

1)所有  >all(子查询)

>最大值  max

2)一个即可 >any(子查询)

>最小值  min


小于 小于<

        1)所有 <all(子查询)

        <最小值

        2)一个即可<any(子查询)

        <最大值

all,any效率不高


having中嵌套子查询

:查询部门平均薪资低于公司平均薪资的部门

select dept_id

from s_emp

group by dept_id

having avg(salary)<(

select avg(salary)

from s_emp

);

from中嵌套子查询

结果集:行和列组成,可以把结果集当成表,再做查询

在mysql中,把一个结果集当做表,需要取别名

例:查询查询部门平均薪资低于公司平均薪资的部门编号,部门名

select d.id,d.name

from (

select dept_id

from s_emp

group by dept_id

having avg(salary)<(

select avg(salary)

from s_emp

)

) t,s_dept d

where t.dept_id=d.id;

未完待续......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容

  • 1. 了解SQL 1.1 数据库基础 ​ 学习到目前这个阶段,我们就需要以某种方式与数据库打交道。在深入学习MyS...
    锋享前端阅读 1,071评论 0 1
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,083评论 0 0
  • 1.按照salary排序 显示s_emp 表中的 id first_name salary 如果工资相同...
    WJ_a4e6阅读 416评论 0 0
  • 烟台有美丽蔚蓝的大海,有风景优美绿树环绕的群山,五六月份有酸甜可口的大樱桃。红红的大樱桃密密麻麻的挂在树上,...
    孔潇涵阅读 399评论 0 0
  • 今天白云山活动, 虽然来爬过很多次但是这次很不一样,一起工作的朋友,伙伴,爬上去的时候有说有笑,也有目的性,分了两...
    贺春阅读 298评论 0 0