2016-04-06 22 views
1

ソーシャルネットワークのコンテキストで、接続されたユーザーとその友人のすべての投稿を表示するクエリが必要です。複数の動的 "WHERE"条件を持つSQLクエリが必要

ユーザーテーブルヘッダ: ID、ACCOUNT_NAME、パスワード、名前、誕生日、説明

投稿テーブルヘッダ: ID、user_IDは、テキスト、日付

友達テーブルヘッダ: ID_user_1、ID_user_2

現在のクエリ:

select p.ID, p.users_ID, p.text, p.date, u.ID, u.name 
from post p 
inner join users u 
on p.users_ID = u.ID 
where p.users_ID = 1 or p.users_ID=(
    select users_ID_2 from friends 
    where users_ID_1 = 1) 
order by date 

注:現在users_ID(1)はPHP経由で挿入される変数です。

私の問題は、私のサブクエリが複数の行、つまり接続されている各ユーザーの友達のIDを返すということです。

+2

は 'p.users_ID IN(...'を行います。 – jarlh

答えて

1

あなたは近かった:

select p.ID, p.users_ID, p.text, p.date, u.ID, u.name 
from post p 
inner join users u 
on p.users_ID = u.ID 
where p.users_ID = 1 
    or p.users_ID IN 
    (select users_ID_2 from friends 
     where users_ID_1 = 1) 
order by date 
関連する問題