如何在IN运算符中使用select语句和变量


How to use a select statement and a variable inside IN operator?

我正在尝试使用一个select语句和一个变量$userid,该变量设置为IN运算符中的用户ID,如下所示:

"SELECT id FROM users WHERE id IN ((SELECT manager_id FROM managers), $userid)";

但它不起作用。当我删除$userid时,它可以工作,但我也需要包括用户id。这是强制性的。我该怎么做?

我是个笨蛋。所以请原谅我。

谢谢!

@Mark Baker作为评论给出的答案是正确的:

"SELECT id FROM users WHERE id IN (SELECT manager_id FROM managers) OR id = $userid)";

如果ID与外键链接(这似乎是合理的),您也可以使用JOIN以获得更好的性能:

SELECT u.*
FROM users u
LEFT JOIN managers m ON m.manager_id = u.id
WHERE m.manager_id IS NOT NULL OR uid = $userid

"SELECT id FROM users WHERE id IN(SELECT manager_id FROM managers UNION SELECT$userid)";