-1

友達や私が作成した最新の 'N' 個の投稿をホームページに表示したいと考えています。これに関連するデータベースには 2 つのテーブルがあります。

それらの 1 つが「友達」です (私の友達であるメンバーのリストは、このテーブルから取得できます)。もう 1 つは「更新」です (すべてのステータス更新はこのテーブルに格納されます)。

両方のテーブルに共通するフィールドは「memberID」(サイトの各メンバーに割り当てられた一意の番号) です。

では、これら 2 つのテーブルから必要な情報を取得して出力するにはどうすればよいでしょうか。

私の質問が明確であることを願っています。さらに明確にする必要がある場合はお知らせください。

ところで、私は PHP (手続き型プログラミングのみ; OOP なし) を使用してサイトを開発しており、MySQL データベースを使用しています。また、共有ホスティングを使用するため、スクリプトの実行に必要な処理時間と電力をできるだけ低くしたいと考えています。

4

2 に答える 2

1

次のようなものが必要です。

SELECT * FROM updates INNER JOIN(friends) ON(updates.memberID = friends.memberID AND friends.userID = X) ORDER BY updates.date DESC LIMIT 0,N;

friends.memberIDは友達の memberID、は友達friend.userIDになっている人の memberID、 はログインしているユーザーの memberID です。friend.memberIDX

PS「手続き型プログラミングのみ」を読んだとき、私は震えました。あなたは私よりも勇敢な魂です。

于 2013-06-29T20:53:01.733 に答える
1

あなたのユーザーID = あなた

それで:

mysql_query("

select * from updates where memberID in (select friend_id from friends where  memberID  = 'YOU') order by date desc limit 0,N;

");

この結果はあなたが望むものを与えるでしょう。

于 2013-06-29T20:49:41.897 に答える