gpt4 book ai didi

sql - SQL左外部联接的where子句

转载 作者:行者123 更新时间:2023-12-04 13:54:15 25 4
gpt4 key购买 nike

我要创建的 View 有问题。我有两个表在左外部联接中联接,例如tableAtableB,其中tableB是左外部联接。

我只想从表B中选择状态等于4的那些行,所以我将WHERE state = 4添加到我的查询中。现在,对结果集进行了相当大的调整,因为tableB中所有没有匹配行的行都被从结果中删除(因为这些行的状态不是4)。我也尝试过WHERE state = 4 OR state IS NULL,也不起作用(因为从技术上讲,在没有状态的情况下state并不是NULL)。

因此,我需要的是WHERE语句,该语句仅在实际存在一行时才进行评估,是否存在这样的事情?

如果没有,我会看到两个选项:join (SELECT * FROM tableB WHERE state = 4)而不是表B,或者使用相同的WHERE语句创建一个 View 并将其加入。最佳选择性能明智的是什么?

顺便说一下,这是SQL Server 2008 R2。

最佳答案

您将条件放在on子句中。例子:

select a.this, b.that
from TableA a
left join TableB b on b.id = a.id and b.State = 4

关于sql - SQL左外部联接的where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7171886/

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