2016-05-24 8 views
1

parent_id属性で処理される親子関係が1対多のテーブルXがあります。親子関係に除外されている子を見つける

| id | parent_id | type | 
|----|-----------|------| 
| 1 | -   | A | 
| 2 | -   | A | 
| 3 | -   | A | 
| 4 | 1   | B | 
| 5 | 1   | C | 
| 6 | 2   | B | 
| 7 | 3   | C | 

タイプBの子ローがないタイプAのすべてのローを取得したいと思います。これらのローを取得するSQLクエリは何ですか?

+0

どのデータベースですか?事前の文で接続することができます – SSD

+0

私はoracle dbを使用します。 – emredelioglu

答えて

2
SELECT 
    * 
FROM 
    x AS t1 
WHERE 
    t1.type = 'a' 
     AND 0 = (SELECT 
      COUNT(*) 
     FROM 
      x AS t2 
     WHERE 
      t2.id_parent = t1.id AND t2.type = 'b')