0
给出MySQL数据库中的两个简单表。用等效的EXISTS()查询替换IN()子查询
- 产物(具有属性,PROD_ID,PROD_NAME ...)
- product_image(具有属性,product_image_id,PROD_ID(引用在产品表PROD_ID),prod_image ...)
的这些表格之间的关系很直观 - 一对多从product
到product_image
。
我需要检索从product_image
表具有最大product_image_id
在各组产品的结果集(仅prod_image
)。
下面的查询确实如此。
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)
如何使用EXISTS()
重写此查询?
你确定发布的查询返回你所需要的吗? 'IN'中的子查询返回'prod_id'的不同值... – a1ex07
考虑将正确的DDL(和/或sqlfiddle)与期望的结果集一起提供 - 或者是否存在赋值的特定部分? – Strawberry
IN()'查询(如此)在ORM中不正确生成。因此,我正在寻找替代品(联合并不总是替代品)。没有任务。 – Tiny