次のようなアクティビティというテーブルがあります
ID | related_id | 関連テーブル | ...
そして、それぞれがテーブルにちなんで名付けられ、ID を含む 3 つの配列:
$clubs[1,2,3]; $vendors[4,5,6]; $users[7,8,9];
アレイ内の対応するクラブ、ベンダー、およびユーザーに属するアクティビティを選択するにはどうすればよいですか? 私は非常に単純な SQL しか知りませんが、これを行う方法があると確信しています。
可能であれば、1 つの select ステートメントでこれを実行しようとしています。それ以外の場合は、「どこで」3でそれを行う方法を知っています.
答え:
1回の選択ですべてのアクティビティを取得する方法は次のとおりです。
'SELECT * from activities where (related_table = \'clubs\' and related_id in ('.$clubs_string.')) or (related_table = \'vendors\' and related_id in ('.$vendors_string.')) or (related_table = \'users\' and related_id in ('.$users_string.'));';
配列を文字列に implode() することに関する Morgan Wilde の回答を参照してください。