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)
这很好用。但总之,它失败了。我做错了什么?
答案 0 :(得分:6)
这可以使用JOIN
完成。下面是使用隐式短手语法的示例。
SELECT * FROM image_appreciations a, images i
WHERE a.image_id = i.id AND i.user_id = 1
答案 1 :(得分:4)
像这样的子查询“应该”起作用,奇怪的是它不是。无论如何,您可以尝试使用JOIN
来解决此问题。
SELECT * FROM `image_appreciations`
JOIN `images` ON `image_id` = `id`
WHERE `images`.`user_id` = '1'