你好,我有mysql表object和photo与关系(1:N),一个对象可以有多张照片。
照片对象有列
id,object_id,uploaded_at,uri
我需要创建一个选择来选择最古老的照片的object_id和uri。因此,对于下列数据集:


它能在没有子查询的1次查询中完成吗?通过以下查询,我能够获得所需的结果:
select object_id, uri from photo ph where uploaded_at = (SELECT min(uploaded_at) from photo inph where inph.object_id = ph.object_id) group by object_id, uri;发布于 2022-08-19 19:37:24
可以在没有子查询的1次查询中完成吗?
在您的情况下,使用子查询是合适的,我认为,您不需要选择任何其他的方法来实现相同的结果。以防万一,您想知道如何在没有子查询的情况下完成任务。
SELECT
ANY_VALUE(object_id) AS object_id,
ANY_VALUE(MIN(uploaded_at)) AS uploaded_at,
ANY_VALUE(uri) AS uri
FROM
photo
GROUP BY object_id;参考文献:https://dev.mysql.com/doc/refman/8.0/en/miscellaneous-functions.html#function_any-value
https://stackoverflow.com/questions/73418337
复制相似问题