这是我写的用于获取Author-1的所有评论的查询。 作者1写了2篇帖子,每篇都有很多评论。我想要所有这些评论。
SELECT *
FROM `package_reviews`
WHERE `post_id` = (SELECT `post_id`
FROM `wp_posts`
WHERE `post_author`=1);
将错误消息显示为#1242 - 子查询返回的行数超过1行。
答案 0 :(得分:1)
你应该在这里使用join。
像这样。
SELECT * FROM `package_reviews` r LEFT JOIN `wp_posts` p ON r.post_id= p.post_id WHERE p.post_author = 1
答案 1 :(得分:0)
你需要
SELECT * FROM `package_reviews`
WHERE `post_id` IN
(SELECT `post_id` FROM `wp_posts` WHERE `post_author`=1);
如果您想要退回所有评论。
答案 2 :(得分:0)
您可以使用LIMIT
来限制子查询 SELECT *
FROM `package_reviews`
WHERE `post_id` IN (SELECT `post_id`
FROM `wp_posts`
WHERE `post_author`=1
);
答案 3 :(得分:0)
像这样更改你的代码:
选择 *
来自package_reviews
WHERE post_id
= ANY(SELECT post_id
来自wp_posts
WHERE post_author
= 1);
这个链接非常有用
http://dev.mysql.com/doc/refman/5.0/en/subquery-errors.html