如何确保SQL查询中的字段是唯一的


How to make sure that a field in SQL query is unique?

我有以下查询

 SELECT nature_images.image_code, 
           nature_objects.name 
    FROM nature_images 
    LEFT JOIN nature_objects 
         ON nature_images.object_id = nature_objects.id 
         AND nature_images.approved = 1 
    ORDER BY RAND() 
    LIMIT 0,5

结果是返回重复的nature_object.id,但对于不同的nature_objects.id,我基本上需要的是nature_oobject.id在返回的每一行中都是唯一的,不会重复。我尝试使用SELECT DISTINCT,但似乎失败了。。有什么可以做的吗?

您可以对对象名称执行GROUP BY,并获得最大代码或最小代码。

SELECT MAX(nature_images.image_code), 
       nature_objects.name 
FROM nature_images 
LEFT JOIN nature_objects 
     ON nature_images.object_id = nature_objects.id 
     AND nature_images.approved = 1 
GROUP BY nature_objects.name
ORDER BY RAND() 
LIMIT 0,5