如何在SQL中使用IN子句以及AND子句

时间:2015-06-04 23:07:56

标签: mysql sql clause

SELECT * 
FROM `Events` 
WHERE `UserID` IN (SELECT `BeingFollowed` FROM `Followers` WHERE `Follower` = us)

好的以上是我的查询,我正在尝试获取我的关注者所做的所有事件,而us变量是存储的例程函数中的参数,这是我的UserID但我没有关注自己但我也希望得到我的活动,每个活动都有一个UserID,我希望得到所有关注者事件以及我在同一个查询中拥有的事件

1 个答案:

答案 0 :(得分:2)

这就是OR的作用:

SELECT * 
FROM `Events` 
WHERE `UserID` IN (SELECT `BeingFollowed` FROM `Followers` WHERE `Follower` = us)
OR `UserID` = us

您也可以将自己添加到子查询中,但这可能更慢:

SELECT * 
FROM `Events` 
WHERE `UserID` IN (
  SELECT `BeingFollowed` FROM `Followers` WHERE `Follower` = us
  UNION ALL
  SELECT us
)