也许我的描述有点朦胧:) 我想在两个表上进行外连接,并选择一个字段具有某个值或为空的记录 我原来的概念是
select A.x,B.y
from A
left outer join B
on A.id= B.a_id
where b.y ='abc'
or b.y is null
然后我意识到它从B桌上拿走了B.y而不是从加入的
如何轻松解决我怎么做?
我需要的是选择行,其中B.y是' abc'或null,即:
(1,' ABC')
(2,NULL)
虽然我的查询给了我带结果的内部联接功能
(1,' ABC')
忽略其他条目
答案 0 :(得分:1)
是吗
select A.x,B.y from A left outer join B on A.id= B.a_id and ( b.y ='abc' or b.y is null )
阅读评论后,只需删除左外
答案 1 :(得分:0)
这就是你想要的吗?
select A.x,b.y
from A
left outer join B
on A.id= B.a_id and
b.y ='abc'
正如您在评论中所说,如果您获得内部联接结果而不是预期的外部联接,那是因为您在where子句中引用了外部表。 您需要将引用移动到连接。