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

时间:2015-03-31 09:07:51

标签: php mysql sql mysqli

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

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

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

我是个菜鸟。请原谅我。

谢谢!

3 个答案:

答案 0 :(得分:0)

@Mark Ba​​ker作为评论的答案是正确的:

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

答案 1 :(得分:0)

如果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

答案 2 :(得分:0)

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