SQL如果不是从左边加入其他左连接

时间:2018-05-21 18:54:37

标签: sql if-statement left-join

我是以下查询,我只希望第一个左连接的结果返回地址的结果(add1 / 2/3)。是否有可能,或者我应该将其全部归还并在以后提交结果?

select 
 -- if add1 has no results
 -- select add2
 -- if add2 has no results
 -- select add3
from names n, matter_counsel mc, counsel c
left join(
    FLUFF
) as add1 on X
left join(
    FLUFF
) as add2 on Y
left join(
    FLUFF
) as add3 on Z
where FLUFF

例如,如果add1返回1个地址,则add2返回1个地址,add3返回3个地址,我只想要add1的结果集。

Coalesce会给我不正确的结果,其中add1来自记录1,另外两个来自add3。

先谢谢。

2 个答案:

答案 0 :(得分:0)

是的,有可能。除非你讨厌自己(或者你的数据集非常小),否则很少有更好的选择来在查询后过滤结果。

话虽如此,基于我们必须使用的信息,我可能会建议您尝试使用子查询来实现所需的结果。但是,如果没有其他信息,可能无法准确回答您可能需要的更改。因为很难确切地知道你最终的结果是什么。

如@jarlh所述,您可能希望阅读“How to create a Minimal, Complete, and Verifiable example”并发布一些数据示例或明确说明您需要的内容。

答案 1 :(得分:0)

我认为你想要合并功能。

从名称n,物料清单mc,顾问c中选择合并(add1.val,add2.val,add3.val) 左连接(     起毛 )作为X上的add1 左连接(     起毛 )作为Y上的add2 左连接(     起毛 )作为Z上的add3