では、私はEXIST句を使用するクエリを実行しようとしています:スパーク交換が存在し、
select <...>
from A, B, C
where
A.FK_1 = B.PK and
A.FK_2 = C.PK and
exists (select A.ID from <subquery 1>) or
exists (select A.ID from <subquery 2>)
残念ながら、これはサポートされていないようです。
select <...>
from A, B, C
where
A.FK_1 = B.PK and
A.FK_2 = C.PK and
A.ID in (select ID from ...) or
A.ID in (select ID from ...)
残念ながら、またIN
句はサポートされていないように思わ:私はまたIN
句でEXISTS
句を交換しようとしています。
希望の結果を得るSQLクエリをどのように書くことができますか?私はUNION
などの別のJOIN
と第二OR
句として、原則的にWHERE
句をモデル化することができますが、それは超不器用なようだ。..
EDIT:可能な解決策の数を一覧表示します。
ソリューション1
select <...>
from A, B, C
(select ID from ...) as exist_clause_1,
(select ID from ...) as exist_clause_2,
where
A.FK_1 = B.PK and
A.FK_2 = C.PK and
A.ID = exist_clause_1.ID or
A.ID = exist_clause_2.ID
ソリューション2
select <...>
from A, B, C
((select ID from ...) UNION
(select ID from ...)
) as exist_clause,
where
A.FK_1 = B.PK and
A.FK_2 = C.PK and
A.ID = exist_clause.ID
最初のクエリテンプレートには、存在するフォームのEXISTS呼び出しはありませんか?(E.ID = A.IDの場合は EからE.IDを選択してください)) '? –
philipxy