我有两个表-用户和帖子。我得到下一个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)";
还有这么多导致这个