2017-10-28 9 views
0

とOR条件合流:SQLの複数のは、私は以下の表を持っている

TableAの

  • ID

TableBの

  • ID
  • tableA_id

表C

  • ID
  • tableA_id

そこでテーブルB及びCはtableA_id FKを有します。

TableBまたはTableCで参照を持つすべてのid-sをTableAから返すクエリが必要です。私は標準が参加しない場合

が、それは他のCを結合し、BとCの

が、私は2つのクエリを使用してこれを行うことが

、1はBを 参加し 両方のテーブルの参照を持っている唯一の値を返すと、結果をマージするUNIONを使用します。しかし、私は同じクエリを2回書く必要はありません。

これを達成する方法はありますか?OR 'JOIN?

+2

使用することができるが存在するか、または2外部結合及び少なくとも1つの非ヌルをチェック/ Bの値を返し(合体希望そこで働く)。 – Igor

答えて

0

は、重複を排除しますDISTINCTタグを使用して、この

SELECT DISTINCT TABLEA.ID_A, TABLEA.NAME 
FROM TABLEA,TABLEB,TABLEC 
WHERE TABLEA.ID_A = TABLEB.ID_A AND TABLEA.ID_A = TABLEC.ID_A 

で試してみてください。

0

これは何か?

左側の外部結合及びIDのチェックに使用できる
SELECT 
    * 
FROM 
    TableA, 
    TableB, 
    TableC 
WHERE 
    TableA.id = TableB.tableA_id 
    OR TableA.id = TableC.tableA_id 
0

SELECT a.id FROM A a 
    LEFT JOIN B b ON a.id = b.tableA_id LEFT JOIN C c ON a.id = c.tableA_id 
WHERE b.id IS NOT NULL OR c.id IS NOT NULL 
関連する問題