Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >左连接三个表

左连接三个表
EN

Stack Overflow用户
提问于 2018-05-28 11:04:55
回答 4查看 4.5K关注 0票数 0

如何创建sql查询来选择不同的表A数据,如图所示

谢谢

EN

回答 4

Stack Overflow用户

发布于 2018-05-28 11:06:23

一种方法是minus

代码语言:javascript
运行
AI代码解释
复制
select . . .
from a
minus
select . . .
from b
minus
select . . .
from c;

或者,not exists

代码语言:javascript
运行
AI代码解释
复制
select a.*
from a
where not exists (select 1 from b where . . . ) and
      not exists (select 1 from c where . . . );

您没有阐明匹配条件是什么,所以我使用. . .作为通用性。

这两个版本是不同的。第一个函数返回a中的列的唯一组合,其中相同的列不在bc中。第二个函数返回a中的所有列,而另一个集合不在bc中。

票数 6
EN

Stack Overflow用户

发布于 2018-05-28 11:08:02

如果您必须使用LEFT JOIN来实现真正的anti join,请执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
SELECT *
FROM a
LEFT JOIN b ON b.a_id = a.a_id
LEFT JOIN c ON c.a_id = a.a_id
WHERE b.a_id IS NULL
AND c.a_id IS NULL

这是这样的:

  • FROM:从a
  • LEFT JOIN:获取所有行可选地从b和c获取匹配的行作为well
  • WHERE:事实上,不是。只保留a中那些在b和c

中没有匹配项的行。

不过,使用NOT EXISTS()是运行反联接的一种更优雅的方式。我倾向于不推荐NOT IN(),因为围绕三值逻辑的微妙含义-这可能导致根本得不到任何结果。

关于使用维恩图进行连接的附注

很多人喜欢使用维恩图来说明连接。我认为这是一个坏习惯,维恩图很好地模拟了集合操作(比如UNIONINTERSECT,或者在你的例子中是EXCEPT / MINUS)。Joins are filtered cross products, which is an entirely different kind of operation. I've blogged about it here

票数 6
EN

Stack Overflow用户

发布于 2018-05-28 11:07:46

选择不在B或C或A中的内容inner join B inner join C

代码语言:javascript
运行
AI代码解释
复制
Select * from A
where A.id not in ( select coalesce(b.id,c.id) AS ID
                    from b full outer join c on (b.id=c.id) )

或者:-你不需要连接,所以你可以避免这样做

代码语言:javascript
运行
AI代码解释
复制
select * from A
where a.id not in (select coalesce (B.ID,C.ID) AS ID from B,C)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50564938

复制
相关文章
Hive左连接_oracle左外连接
大家好,又见面了,我是你们的朋友全栈君。 CREATE EXTERNAL TABLE IF NOT EXISTS a( telno STRING, other STRING ) PARTITIONED BY(day String) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘|’;
全栈程序员站长
2022/10/02
1.3K0
mysql左连接和右连接_MYSQL 左连接与右连接
LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
全栈程序员站长
2022/09/05
16.2K0
mysql左连接和右连接_MYSQL 左连接与右连接
HQL的左连接_左连接与右连接的区别
,但是默认使用的内连接,就是说外键必须匹配的记录才能查出来,实现不了要求。 当我决定用左连接查询之后,做了很多尝试,但是因为对HQL不够熟悉,都没有达到要求。比如这样的
全栈程序员站长
2022/09/29
1.3K0
ClickHouse左连接
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/04
8720
ClickHouse左连接
mysql中左连接查询_mysql左连接「建议收藏」
查询语句开始 会根据 on后面的条件创建一张虚拟表,左边表是全部数据,右边表会根据on后面的条件进行筛选。
全栈程序员站长
2022/08/11
2.4K0
mysql数据库语句左连接_MySQL 左连接 右连接 详解
aID aNum bID bName
全栈程序员站长
2022/06/27
27.5K0
mysql 左连接 自连接 例子
逻辑:先通过左连接将看了湖南卫视和北京卫视的查出来,然后再将看了湖南卫视但不在刚才查出的结果中的用户查出来。
全栈程序员站长
2022/09/03
3.1K0
mysql 左连接 自连接 例子
左连接,右连接,内连接,外连接
这里之前一直没有写,主要原因觉得好多东西比较基础,没想都写,但是后来觉得,学习的话应该是扫盲和汇总的阶段,所以这里也单独写一下
名字是乱打的
2021/12/22
2.2K0
左连接,右连接,内连接,外连接
mysql左连接查询
左连接查询:以左表为主表,右表为从表,查询符合条件的数据 1.当右表中数据匹配不到时展示为空 例: 左表两条数据,按条件匹配到右表一条数据且匹配左表第一条,结果展示两条数据,且第二条数据右表中的字段全部为null 2.当匹配到右表的数据为多条时,左表数据会重复展示,不会自动合并 例: 左表数据一条,按条件匹配到右表数据三条,结果展示三条数据,左表数据均相同,右表数据不同
全栈程序员站长
2022/09/07
2.6K0
mysql连接查询(左连接,右连接,内连接)
以上就是MySQL 连接查询的资料整理,大家如有疑问可以留言讨论,共同进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
叫我可儿呀
2019/11/30
12K0
mysql连接查询(左连接,右连接,内连接)
内连接、左连接、右连接区别
`Aid` int(10) NOT NULL DEFAULT 1 COMMENT '主键' ,
一觉睡到小时候
2019/07/04
1.2K0
内连接、左连接、右连接区别
SQL查询左连接、右连接、内连接[通俗易懂]
1、左连接的定义:是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。
全栈程序员站长
2022/07/22
7.8K0
SQL查询左连接、右连接、内连接[通俗易懂]
mysql左连接 右连接 内连接的区别[通俗易懂]
a表 id name b表 id job parent_id
全栈程序员站长
2022/09/05
2.7K0
Access/VBA/Excel-左连接-11
系统:Windows 7 软件:Excel 2010/Access 2010 这个系列开展一个新的篇章,重点关注Access数据库 主体框架:以Excel作为操作界面,Access作为数据库 今天讲讲如何将数据库中满足要求的数据拿出来 涉及知识:, Part 1:目标 成绩表 学生信息表 运行过程 获取学号为1101学生在不同年级的语文成绩,输出信息包括:姓名,学号,性别,年级,语文成绩 最终想要获得的信息来自于两个工作表,所以需要连接查询 逻辑过程 连接数据库 根据需求确定SQL语句 执行SQ
企鹅号小编
2018/01/10
1.1K0
Access/VBA/Excel-左连接-11
mysql左连接查询慢[通俗易懂]
之前一直用的Oracle,今天用mysql查询一个很普通的左连接的时候,发现速度很慢。 select x.fid,x.isbirt,x.fscoresum,x.fsystemscore,x.feffectivescore from tablea x left join tableb h on x.fitemid = h.fid where h.fprojectid=’’ 这个sql耗时:
全栈程序员站长
2022/08/31
2.8K0
mysql左连接查询慢[通俗易懂]
mysql左连接去重
create table TB_BATCH( ID int(11) not null auto_increment, BATCH_NO VARCHAR(32) comment ‘批次号’, CONTRACT_ID int(11) comment ‘合同ID’, CONTRACT_NO VARCHAR(64) comment ‘合同编号’, RULE_ID int(11) comment ‘规则ID’, CITY VARCHAR(64) comment ‘城市’, COMPANY_NAME VARCHAR(128) comment ‘企业名称’, SERVICE_ADDRESS VARCHAR(128) comment ‘上门地址’, EXP_DATE date comment ‘日期’, EXP_BEGIN_TIME time comment ‘开始时间’, EXP_END_TIME time comment ‘结束时间’, MASSAGIST_COUNT int(4) comment ‘技师数量’, STATUS VARCHAR(16) not null comment ‘状态:待分配、已分配、已确认、服务中、已完成、已取消’, OPERATOR varchar(30), CREATE_TIME datetime, MODIFY_TIME datetime, primary key (ID) );
全栈程序员站长
2022/09/06
1.2K0
mysql左连接去重
Mysql中外连接,内连接,左连接,右连接的区别
可能第一种通过where语句查询,大家都能理解. 但是不知道大家有没有去尝试过理解下面关于内连接与外连接查询方式的区别 ,接下来我们先通过一张图来演示一下连接的整个层级关系:
萌萌哒的瓤瓤
2021/01/13
4.6K0
Mysql中外连接,内连接,左连接,右连接的区别
SQL 内连接,外连接(左外连接、右外连接)
语句:select * from a_table a inner join b_table bon a.a_id = b.b_id;
birdskyws
2018/09/12
11.7K0
SQL 内连接,外连接(左外连接、右外连接)
Mysql—— 内连接、左连接、右连接以及全连接查询
语句:select * from a_table a inner join b_table b on a.a_id = b.b_id;
全栈程序员站长
2022/08/10
4.3K0
Mysql—— 内连接、左连接、右连接以及全连接查询
点击加载更多

相似问题

三个表的左连接

21

三个表之间的左连接(带连接表)

12

PHP + mysql -左连接-三个表

30

三个表的左外连接

10

左外部连接(三个表之间的连接)?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档