从2张或多张表中,取出有关联的数据
关联查询一共有几种情况:
内连接:INNER JOIN 、CROSS JOIN
(1)形式一
select 字段列表
from A表 inner join B表
on 关联条件
【where 其他筛选条件】
说明:如果不写关联条件,会出现一种现象:笛卡尔积
关联条件的个数 = n - 1,n是几张表关联
on只能和join一起用
(2) 形式二
select 字段列表
from A表 , B表
where 关联条件 【and 其他筛选条件】
外连接:左外连接(LEFT OUTER JOIN)
左连接:
第一种结果:A
select 字段列表
from A表 left join B表
on 关联条件
第二种结果:A - A∩B
select 字段列表
from A表 left join B表
on 关联条件
where 从表的关联字段 is null
右外连接(RIGHT OUTER JOIN)
第一种结果:B
select 字段列表
from A表 right join B表
on 关联条件
第二种结果:B - A∩B
select 字段列表
from A表 right join B表
on 关联条件
where 从表的关联字段 is null
全外连接(FULL OUTER JOIN)
使用union实现全连接的效果
(1)A ∪ B
select 字段列表
from A表 left join B表
on 关联条件
union
select 字段列表
from A表 right join B表
on 关联条件
(3)A ∪ B - A ∩ B
select 字段列表
from A表 left join B表
on 关联条件
where 从表的关联字段 is null
union
select 字段列表
from A表 right join B表
on 关联条件
where 从表的关联字段 is null
自连接:当table1和table2本质上是同一张表,只是用取别名的方式虚拟成两张表以代表不同的意义
SQL关联查询c2c、 账号基础实操解读、 eori、 跨境分享:高客单价(超过100美金)产品的玩法、 亚马逊平台佣金调整,6月5日开始生效!、 实战分享:如何利用Quora引爆流量?、 西冲两日自助游,求路线安排?、 西冲在哪里?、 西冲沙滩3号收费站服务项目及价格?、
No comments:
Post a Comment