gpt4 book ai didi

sql - FULL OUTER JOIN 值条件

转载 作者:行者123 更新时间:2023-12-01 12:57:33 25 4
gpt4 key购买 nike

我需要为 FULL OUTER JOIN 添加值条件。

IE。我正在尝试这样做:

SELECT *
FROM Table1
FULL OUTER JOIN Table2 ON Table1.Field1 = Table2.Field1 AND Table2.Field2 > 5

但是这个脚本不起作用。实际上看起来条件 (Table2.Field2 > 5) 根本没有被应用。

RIGHT OUTER JOIN 也会出现同样的问题,所以我认为原因是当存在 RIGHT 或 FULL 连接时,没有值条件应用于连接中的正确表。
为什么会这样?对这种行为有概念性的解释吗?

当然,主要问题是如何解决这个问题。

有没有办法在不使用子查询的情况下解决这个问题?

SELECT *
FROM Table1
FULL OUTER JOIN (SELECT * FROM Table2 WHERE Table2.Field2 > 5) AS t2 ON Table1.Field1 = t2.Field1

最佳答案

你想要的可能会被重新表述为:

 SELECT *
FROM Table1
LEFT JOIN Table2 ON Table1.Field1 = Table2.Field1 AND Table2.Field2 > 5
UNION ALL
SELECT *
FROM Table1
RIGHT JOIN Table2 ON Table1.Field1 = Table2.Field1
WHERE Table2.Field2 > 5
AND Table1.Field1 IS NULL

但是按照您自己的建议使用子查询是 IMO 的最佳选择。

关于sql - FULL OUTER JOIN 值条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8907470/

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