在MySQL数据库中给出两个简单的表。
这些表格之间的关系直观 - 从product
到product_image
一对多。
我需要从prod_image
表中检索结果集(仅product_image
),每个产品 {<1}}。
以下查询正是如此。
product_image_id
如何使用SELECT p.prod_image
FROM product_image p
WHERE p.product_image_id IN(SELECT max(pp.product_image_id)
FROM product_image pp
GROUP BY pp.prod_id)
重写此查询?
答案 0 :(得分:1)
以下查询遵循您的问题的逻辑,即为每个prod_image_id
获取最大prod_id
。
SELECT p1.prod_image
FROM product_image p1
WHERE NOT EXISTS(SELECT 1
FROM product_image p2
WHERE p1.prod_id = p2.prod_id
AND p1.product_image_id < p2.product_image_id)