0

ログインしているユーザーが誰をフォローしているかに基づいて、ユーザーからの投稿を選択したいと思います。私は何をする必要がありますか?1 つの SELECT ステートメントで 2 つの異なるテーブルを使用するにはどうすればよいですか? どこから始めればよいかさえわかりません。

私は3つのテーブルを持っています: ユーザーはフォロワーを投稿します

ありがとう。

4

3 に答える 3

0
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

フィールド名を提供していないため、フィールド名を作成する必要がありました。

于 2012-04-25T19:46:03.393 に答える
0

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)
于 2012-04-25T19:48:57.223 に答える
0

2 つのテーブルからの選択は、JOIN を使用して行われ ます http://dev.mysql.com/doc/refman/5.0/en/join.html

基本的に2つのテーブルから選択してJOIN条件を定義します。

次の 2 つのテーブルがあるとします。

  • 列を持つユーザー: user_id、user_name、online_state
  • 列を持つ投稿: post_id、user_id (この投稿を投稿したユーザー)、タイトル、メッセージ

SELECT p.title, p.message FROM users u JOIN 投稿 p ON u.user_id = p.user_id WHERE u.online_state = 'online'

結合条件は ON の後に、非結合条件は WHERE の後にある必要があります

于 2012-04-25T19:49:21.957 に答える