0

也许我的描述有点模糊:) 我想在两个表上进行外部联接,并选择一个字段具有某些值或为空的记录我最初的概念是

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 表中获取的,而不是从加入
的表中获取,我该怎么做?

我需要的是选择行,其中By是'abc'或null,即:
(1,'abc')
(2,null)

而我的查询为我提供了带有结果的内部连接功能

(1,'abc')
忽略其他条目

4

2 回答 2

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 )

阅读评论后,只需删除左外层

于 2012-10-04T20:27:36.240 回答
0

这是你想要的吗?

    select A.x,b.y 
    from A 
    left outer join B 
        on A.id= B.a_id and
        b.y ='abc'

如果,正如您在评论中所说,您得到的是内部联接结果而不是预期的外部联接,那是因为您在 where 子句中引用了外部表。您需要移动对联接的引用。

于 2012-10-04T18:54:34.883 回答