加入WHERE子句 - 表具有已定义值的行,或者没有条目

时间:2015-12-18 11:33:28

标签: sql sql-server

任何人都可以帮我找出以下场景的正确WHERE子句:

select A.name
from tableA A, tableB B
where A.id = B.id
and 
(
    B.field = 5
    OR
    B.hasNoRowForJoinedID
)

我觉得我错过了一些在如何实现这一目标方面非常明显的东西,但我不能为我的生活指责它。

2 个答案:

答案 0 :(得分:3)

您使用的是过时的SQL语法。要根据您的上述请求执行LEFT OUTER JOIN,您可以执行以下操作:

SELECT A.name
FROM A
LEFT OUTER JOIN B ON A.id = B.id
WHERE (B.field = 5 OR B.field IS NULL)

答案 1 :(得分:1)

使用正确的join语法,而不是过时的语法:

select A.name
from tableA A 
left join tableB B on A.id = B.id and B.field = 5