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

标签 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() 
    LIMIT 0,5

结果返回重复的 nature_object.ids 但具有不同的 nature_objects.id,我基本上需要的是 nature_object.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

关于php - 如何确保SQL查询中的字段是唯一的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26267086/

相关文章:

php - 迭代数组时如何检测循环?

从选择集中删除时出现 MySQL 语法错误?

for循环中特定元素的Javascript数组组

php - 使用 PHP 从 SQL 数据库传递选择值

php - Netbeans xdebug 噩梦

php - AJAX 和自动刷新

mysql - 复杂(ish)连接问题:

MySQL COUNT 件库存商品

php - 求paypal支付教程

mysql - 如何将结果从一行链接到同一张表上的另一行