0
2つのテーブルを結合し、結合するときに複数の一致があるため、2番目のテーブルからランダムフィールドを返したいとします。MySQL結合してランダムフィールドを選択
たとえば、私はusers
テーブルとuser_posts
テーブルを持っています。私は各ユーザのid
とランダムな投稿id
と投稿のmessage
をuser_posts
テーブルに入れたいと思っています。各ユーザーはuser_posts
テーブルに複数の投稿を持つことができます。
This answerは私がしようとしていることを説明していますが、機能しません。ここに私のクエリです:
SELECT user_id, post_id, message FROM (
SELECT users.id AS user_id, user_posts.id AS post_id, message
FROM users INNER JOIN user_posts ON users.id = user_id
ORDER BY RAND()
) AS a GROUP BY user_id
はテストのために、私は1のid
を持つユーザーのためにuser_posts
テーブル内の2つの行を追加、それは毎回同じポストを取得しています。クロスを使用して
を表示するには、ユーザーに参加するために適用され、これはコンパイルさえないのですか? – user1203585
もう一度お試しください。エラー – maSTAShuFu
を今すぐ送信してください。ただし、各ユーザーのすべての投稿が返されます。私はちょうど1つのランダムなものをしたい。 – user1203585