6
SELECT * FROM `image_appreciations`
WHERE `image_id` IN(SELECT `id` FROM `images` WHERE `user_id` = '1')

是我当前的查询,它返回零结果

SELECT `id` FROM `images` WHERE `user_id` = '1'

作为子查询返回大约 8 个 id,其中两个位于

SELECT * FROM `image_appreciations`
WHERE `image_id` IN(77,89)

这很好用。但总的来说它失败了。我究竟做错了什么?

4

2 回答 2

6

这可以使用JOIN. 下面是使用隐式速记语法的示例。

SELECT * FROM image_appreciations a, images i
WHERE a.image_id = i.id AND i.user_id = 1
于 2012-04-11T20:25:25.807 回答
4

像这样的子查询“应该”工作,奇怪的是它不是。无论如何,您可以尝试使用 aJOIN来解决这个问题。

SELECT * FROM `image_appreciations`
JOIN `images` ON `image_id` = `id`
WHERE `images`.`user_id` = '1'
于 2012-04-11T20:25:13.317 回答