gpt4 book ai didi

sql - 执行多个左外部排除连接的最佳方法

转载 作者:行者123 更新时间:2023-12-04 05:40:39 29 4
gpt4 key购买 nike

我有一张表,我需要碰到多个表,其中左外连接不包括右外连接。对此有最佳做法吗?先联合所有其他表?还有什么?

这是我想到的第一个想法来处理这个问题,但我想知道是否有更好更有效的方法。

select
master_table.*
from
master_table
left outer join
(
select customer_id from table_1
union
select customer_id from table_2
union
select customer_id from table_3
union
select customer_id from table_4
) bump_table
on
master_table.customer_id = bump_table.customer_id
where
bump_table.customer_id is null

最佳答案

我应该认为 NOT EXISTS 会更好。它当然可以更好地传达查询的意图。

select * from master_table m
where not exists( select 1 from table_1 where m.customer_id=table_1.customer_id)
and not exists( select 1 from table_2 where m.customer_id=table_2.customer_id)
and not exists( select 1 from table_3 where m.customer_id=table_3.customer_id)
and not exists( select 1 from table_4 where m.customer_id=table_4.customer_id)

关于sql - 执行多个左外部排除连接的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11287353/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com