サブクエリです:MySQLは、私はこのクエリのよりよい解決策を探し
SELECT * FROM USER
WHERE
1 IN (SELECT some_id...) OR
2 IN (SELECT some_id...) OR
3 IN (SELECT some_id...)
サブクエリが1行以上に返すことができます。
私はそれを変更しようとしました:WHERE (1,2,3) IN (SELECT some_id...)
が、そのスローエラー:
オペランドは、私のようないくつかのトリックしようとした1列(複数可)
が含まれている必要があります
(1,2,3) = ANY (SELECT some_id...)
を - しかし、まだ同じ問題。
サブクエリの結果は、2番目のテーブルのsome_idsだけです。
複数のORを使用しないでこれを実現する方法はありますか?
ありがとうございました。
クエリは 'SELECT some_id ...'他のテーブルを参照していますか?はいの場合は、共通の列に参加できますか? – Utsav
はい(SELECT category_id FROM user_category WHERE user.id = user_category.user_id)があり、使用可能なcategory_idがすべて返されます。 – Filip
クエリ全体の例を投稿できますか?あなたの問題に影響を与える可能性のある他の設計上の決定があるように感じます。 –