私は友人や特定のユーザーが投稿した最新の "ボード"エントリを選択するクエリを作成しようとしています。私が何かを投稿した場合、私がこのセクションを閲覧していれば、最新の6つのボードアイテムが表示されます。友人を得るために結合を使用したmysqlクエリ
クエリは次のとおりです。
SELECT b.id, b.user, b.title, b.text, b.time
FROM board b
JOIN user u ON u.user = b.user
JOIN friend f ON f.friend_id = u.id
WHERE f.user_id = 1
ORDER BY `time` DESC
LIMIT 0 , 6
私は他の人にユーザーID、実際のユーザー名は、いくつかのテーブルで使用されたテーブルを扱っています。したがって、なぜ結合しますか。 上記のクエリは友だちからの最新の投稿をすべて取得しますが、作成したユーザーの投稿が必要です。 例えば:
SELECT b.id, b.user, b.title, b.text, b.time
FROM board b
JOIN user u ON u.user = b.user
JOIN friend f ON f.friend_id = u.id
WHERE f.user_id = 1
OR b.user = 'the_users_name'
ORDER BY `time` DESC
LIMIT 0 , 6
2番目のクエリは、単に参加によるユーザの6つの重複行を返します。 これを修正してユーザーの投稿や友だちの投稿を表示するにはどうすればよいですか?
ありがとうございました。決して組合を考えていない!私はそれを変更したので、2番目のクエリはユーザーからボードを選択するために "user"を使用しているため、ユーザーは参加しませんでした。select * from board where user = 'the_user_name' – rbruhn