需要一个具有多个动态" WHERE"的SQL查询条件

时间:2016-04-06 14:39:45

标签: sql subquery inner-join

我需要一个查询,在社交网络环境中显示已连接用户及其朋友的所有帖子。

用户表标题: 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。

1 个答案:

答案 0 :(得分: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