如何在运算符中选择表格使用数组

时间:2014-10-30 06:43:32

标签: php mysql arrays select

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

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

$ result - Array。

我怎样才能从带有$ result的帖子中获取元素?

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

但不要工作,请帮助。

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

您也可以通过加入表格

来使用单个查询
 $sql = "SELECT * FROM posts inner join users on users.user_id = posts.user_id  
        WHERE users.some_param = 1";

答案 2 :(得分:0)

使用implode之类的

$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)";

这么多导致this