如何同时使用 IN 子句和 SQL 中的 AND 子句

How to Use IN Clause as well as AND clause in SQL together

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

好的,以上是我的查询,我正在尝试获取我的关注者所做的所有事件,并且 us 变量是存储例程函数中的一个参数,它是我的 UserID,但我不是关注我自己,但我也想获取我的事件,每个事件都有一个用户 ID,我想获取我所有的关注者事件以及我在同一个查询中拥有的所有事件

这就是 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
)