2017-05-08 28 views
0

私は、ユーザーとその友人に関する記録を持つシンプルなソーシャルネットワークアプリケーションを作成しようとしています。 つまり、ID 1のユーザーにはID 2,3,4の友だちがいます.ID 2のユーザーにはID 1,3,4などの友人がいます。 そのユーザーとその友人に関する記録を取得したいと思います。お互いを参照する2つのテーブル

私はこのような二つのテーブル

ユーザー

user_id | firstname | surname | age 

友人

user_id | friend_id 

やレコード何か作成しました:

ユーザー

user_id | firstname | surname | age 
1  | Nikola | Misic | 22 
2  | Stefan | Ilic | 23 
3  | Dragan | Jovic | null 
0を

友人

user_id | friend_id 
    1 | 2 
    1 | 3 
    2 | 1 
    3 | 1 
    3 | 4 

のuser_idとfriend_idは、外部キーの両方のユーザーテーブル内のuser_idを指しています。

の関係は次のようになります。 enter image description here

私はわからないんだけど、このことも可能、私は3つのテーブル、複合テーブルを介して接続された二つのテーブルで働いているようなものです。

+0

からユーザーIDパラメータを含んでいるでしょうはい、それは完全に可能と比較的一般的ですやるべきこと。 – ADyson

+0

私に残っている唯一のことは、クエリを構造化することです。しかし、私はどのように完全にはわかりません。 – mishke

+0

"クエリ"。私はあなたがこのテーブルでたくさんのクエリを必要とすることになると確信しています。しかし、とにかく、あなたはこのクエリを返すように言っていません。友人?ユーザー_and_さんの友だちですか?他に何か?あなたはそのような質問を書こうとしましたか?あなたが基本的なSQLの知識を持っていれば、それは難しくありません。 – ADyson

答えて

1

説明したように、提案された関係(2つの外部キーが1つの他のテーブルの列にある表)は完全に可能であり、比較的一般的なことを行う必要があります。あなたは、私はそれがだと思うコメントで言ったことに基づいて、ユーザの友人を照会の面で

select 
    u.* 
from 
    users u 
    inner join friends f 
    on u.user_id = f.friend_id 
where 
    f.user_id = ? 

?$_GET["userid"]

+0

今私は恥ずかしいと感じます。私はテーブルを結合する方法を学んだことがありますが、それらのうちの1つが合成されているテーブルは2つしか見たことがありません。私は 3テーブルでのみ動作しています。ありがとう、私はこれが動作するはずだと思うが、私は今日それをテストします。 – mishke

+0

助けてくれてありがとう:) – mishke

+0

選択したユーザーから2歩離れていて、選択したユーザーに直接接続していない友人の友達をどうやって得ることができますか? – mishke

関連する問題