ログインしているユーザーが誰をフォローしているかに基づいて、ユーザーからの投稿を選択したいと思います。私は何をする必要がありますか?1 つの SELECT ステートメントで 2 つの異なるテーブルを使用するにはどうすればよいですか? どこから始めればよいかさえわかりません。
私は3つのテーブルを持っています: ユーザーはフォロワーを投稿します
ありがとう。
SELECT p.*
FROM followers f
JOIN posts p
ON p.author = f.following_id
WHERE f.user_id = $logged_in
ORDER BY
p.post_date DESC
フィールド名を提供していないため、フィールド名を作成する必要がありました。
Quassonoi が彼の回答で提案したように、結合クエリを使用します。別のソリューションを試したい場合は、このようなサブクエリを使用して実行できます
SELECT P.PostId,P.Title,P.Body
FROM Post P WHERE P.CreatedById
IN (
SELECT FollowerID from Followers WHERE USER_ID=3
)
3
現在のユーザー ID に置き換えます。テーブル構造がこのようなものであると仮定します。
役職
PostId (int)
Title
Body
フォロワー
UserId (int)
FollowerId (int)
2 つのテーブルからの選択は、JOIN を使用して行われ ます http://dev.mysql.com/doc/refman/5.0/en/join.html
基本的に2つのテーブルから選択してJOIN条件を定義します。
次の 2 つのテーブルがあるとします。
SELECT p.title, p.message FROM users u JOIN 投稿 p ON u.user_id = p.user_id WHERE u.online_state = 'online'
結合条件は ON の後に、非結合条件は WHERE の後にある必要があります