0

次の子テーブルとの親子関係があります。


CHILD_ID    PARENT_ID    CHILD_VALUE
------------------------------
1           1            x
2           1            y
3           2            y

ここで、CHILD_VALUE が次の既存の個別の親をすべて選択します。

  • child の値 = x (1 つしかないか、まったくない)
  • 値 x を持つ子が存在しない場合 - NULL

つまり、「一致する」子を持つすべての親を表示するか、値に「一致する」子が存在しない場合は NULL を表示します。

したがって、結果は次のようになります。


PARENT_ID    CHILD_ID    CHILD_VALUE
------------------------------
1            1           x
2            NULL        NULL

この場合、結合をどのように絞り込むことができるかが問題になります。

4

1 に答える 1

2

これはトリックを行います:

select distinct a.parent_id, b.child_id, b.child_value
  from test1 a
  left outer join test1 b
               on a.parent_id = b.parent_id
              and b.child_value = 'x'

このSQL fiddleも参照してください。

于 2012-07-25T09:51:44.833 に答える