質問のタイトルについて申し訳ありませんが、この問題の言い方がわかりませんでした。
次のようなテーブルがあります。
entry_id | cat_id
---------+-------
1 | 23
1 | 17
1 | 34
1 | 11
2 | 25
2 | 28
2 | 90
2 | 23
次に、カテゴリごとに異なる配列があります
$cats1 = [23, 46, 67]
$cats2 = [34, 28, 91]
両方の配列に がある をentry_id
戻す必要がありますが、そうするとcat_id
->where_in('cat_id', $cats1)->where_in('cat_id', $cats2)
行に複数の行がcat_id
関連付けられていないため、明らかにこれは機能しません。この場合、最初の の値と2 番目の の値が含まれているため、entry_id
返してほしいのは です。1
array(23)
array(34)
or_where
結果が正確でないため、使用できません。ストレートな SQL 選択ステートメントを使用しても問題ありませんが、このようなテーブルでこのタイプのクエリを実行する方法があるかどうか疑問に思っています。私は SQL の専門家ではないので、アドバイスをいただければ幸いです。
私は現在entry_id
、最初の からを取得し、where_in
別のクエリでwhere_in
それらid
とwhere_in
2 番目の猫の配列を実行する別のソリューションを使用して動作させていますが、クエリ全体を一度に実行することをお勧めします。
これはPHPにあります。