Php 如何确保SQL查询中的字段是唯一的?
我有以下疑问Php 如何确保SQL查询中的字段是唯一的?,php,mysql,sql,select,join,Php,Mysql,Sql,Select,Join,我有以下疑问 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()
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_object.id在返回的每一行中都是唯一的,不会重复。
我尝试使用SELECT DISTINCT,但似乎失败了。。还有其他方法吗?您可以对对象名称进行
分组,得到最大代码或最小代码
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
您究竟是如何生成这个对象2
?这不是mysql会吐出来的东西,除非你以某种方式将确切的文本存储在数据库中。@MarcB不,我不是这样存储的,或者SQL是那样返回的,我只是解释结果的性质,这个查询可能会为我不想要的同一个对象返回两个不同的自然图像。使用group by并获取max代码