は(私はそれを試してみましたが、この文が機能していません知っている)、この可能性のようなものですWHERE TXまたはTY(ZからIDを選択)中のT:SELECT * FROM
SELECT * FROM t WHERE t.x OR t.y IN (SELECT id FROM z)
例
表T:
|id|x |y
|1 |101|201
|2 |102|202
表Z:
|id |
|101 |
|201 |
そしてこのテーブルから、テーブルxのIDのリストに属性xまたは属性yのいずれかが含まれているすべてのエントリを選択します。
私は
SELECT * FROM t WHERE t.x IN (SELECT id FROM z) OR t.y IN (SELECT id FROM z)
を行うことができます知っているが、IN
値は(両方IN
句で同じである)複雑なサブクエリから来ているとき、それは非常に非効率的であるように、これは感じています。
または両方サブクエリは、同じ結果を与え、これだけの時間を実行することを確認してくれ、現在の問い合わせプランナの実装ですか?または、私は現在見ていないEXISTS
を使用して別の解決策がありますか?
PS:私はPostgresのを使用していますが、私は、一般的な解決策を探しています。
作品完璧に...ありがとう! – unwichtich