0

おそらく私の説明は少し曇っています:)2つのテーブルで外部結合を実行し、1つのフィールドに何らかの値があるかnullであるレコードを選択したい私の元の概念は

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を取っていることに気づきましたそれは私がそれを
どのように行うことができるか簡単な修正ですか?

私が必要としているのは行を選択することです。ここで、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 に答える