2012-05-11 4 views
0

私は尋ねたい、私は本当に答えが必要です。私が従うユーザーからの表示状況

ここでは、1つのデータベースに3つのテーブルがあります。

1#ユーザー - id_user(INT) - ユーザ名(テキスト)

2#status_update - id_status(INT) - id_user(INT) - ユーザ名(テキスト) - 状態(テキスト)

3位従う - id_user(INT) - id_user_follow(INT) - ユーザ名(テキスト) - username_follow(テキスト)

質問は、私が従うユーザーのステータスを表示する方法です。私が従わないユーザーのステータスは表示しません。 ?? .. PHPとMySQLを使用してください、助けが必要です。

新しい質問

申し訳ありませんが、イムはまだ、これは私の本当のテーブルであることを理解いけないイム

、私はまだ[1]、ここで私が持っている[私の以前の記事]で答えを理解していない助けてください3つのテーブル。

 
1 # profile 
- id_user 
- username 
- email 

2 # picture 
- id_picture 
- id_user 
- the title 

3 # subscribe 
- id_user_a 
- Id_user_b (people who subscribe at user_a) 
- date 

今の質問は唯一購読する人々にタイトル画像を表示する方法、あり、そして加入していない人にタイトル画像が表示されない、

+0

について学ぶ[SQLジョイン](http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of- sql-joins.html)。 – eggyal

+1

'status_update'テーブルにユーザ名の必要はありません。また、 'follow'テーブルにusernameとusername_followは必要ありません。私はあなたの質問に答えることはできませんが、あなたが何かをする前にそれを修正すべきであることを知っています。 –

答えて

1

まず始めることができ、ドラフトとしてSELECT status FORM status_update AS s LEFT JOIN follow AS f ON s.id_user = f.id_user_follow WHERE f.id_user = 'YOUR_ID' LIMIT 0,5

それはあなたが出回ったりしませDBへの接続を持っているかどうかに依存PHPよりも.. :

+0

新しいステータスから古いステータスへの注文方法?? –

+0

ステータスの日付がない場合は、クエリの最後に 'ORDER BY s.id DESC 'を追加する必要があります。注意してください、それは 'sです。idは 'AUTO_INCREMENT'でなければなりません – vinculis

+0

よろしくお願いします:D –

1
SELECT u.username, s.status 
FROM users u 
LEFT JOIN follow f ON (u.id_user = f.id_user_follow) 
LEFT JOIN status_update s ON (u.id = s.user_id) 
WHERE f.id_user = USER_ID; 

あなたがになっているはずですテーブルを正規化すると、すべてのテーブルのユーザ名を複製する必要はありません。あなたは修正する必要があり、すべてのvar_dump($query->result());

+0

+正規化コメント –

0

SQLあなたのデータベース構造。ここでは私の提案です:

users - id (int), username (varchar) 
status_updates - id (int), users_id (int), status (text) 
follow - users_id, following_users_id 

のみusersテーブルに保存し、あなたが各テーブルには、ユーザーにユーザー名を保存するべきではないことに注意してください。また、ユーザー名はvarcharタイプである必要があります。

そして、ここで固定データベースでクエリです:

SELECT u.username, s.status 
FROM users u 
LEFT JOIN follow f ON u.id = f.following_users_id 
LEFT JOIN status_updates s ON u.id = s.user_id 
WHERE f.user_id = USER_ID 
+0

大丈夫ですか? –

関連する問題