2016-04-06 4 views
1

Мне нужен запрос, который будет отображать все сообщения подключенного пользователя и его друзей в контексте социальной сети.Нужно SQL-запрос с несколькими динамическими условиями «WHERE»

Пользователи табличные заголовки: ID, учётная_запись, пароль, имя, дата рождения, описание

Сообщения заголовки таблиц: 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.

Моя проблема заключается в том, что мой подзапрос возвращает несколько строк, а именно идентификатор каждого из подключенных пользователей пользователя.

+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 
Смежные вопросы