如何在带数组的运算符中从表中进行选择


how can select from table use in operator with array

我有两个表-用户和帖子。我得到下一个sql请求的用户列表:

$sql = "SELECT user_id FROM users WHERE some_param = 1";
$result = mysql_query($sql);

$result-数组。

在我如何从带有$result的帖子中获得元素之后?

$sql2 = "SELECT * FROM posts where user_id in ($result)";
$result2 = mysql_query($sql2);

但不要这样做,请帮忙。

使用子查询可以避免多次运行查询。

通过这个,您可以一次性获得预期的数据。

$sql2 = "SELECT * FROM posts where user_id in (
SELECT user_id FROM users WHERE some_param = 1
)";

您也可以通过连接表来使用单个查询

 $sql = "SELECT * FROM posts inner join users on users.user_id = posts.user_id  
        WHERE users.some_param = 1";

像一样使用内爆

$sql2 = "SELECT * FROM posts 
         WHERE user_id IN (". implode(',',$result) .")";

即使你直接写像这样的子查询

$sql2 = "SELECT * FROM posts 
         WHERE user_id IN (SELECT user_id FROM users WHERE some_param = 1)";

还有这么多导致这个