根据同一行中的另一个DISTINCT列获取DISTINCT列

时间:2019-08-08 02:36:44

标签: mysql sql

我在表名产品中有4列

id|p_name| p_img       |
1 | Xs   | xsmax.png   | 
2 | Xs   | xr.png      | 
3 | XR   | xs.png      | 

我想获取p_name的DISTINCT值并回显其p_img。所以我用下面的代码。

但是,由于没有重复,它会显示所有的p_image。我想根据p_name显示。

SELECT DISTINCT product_name, product_img FROM products
while($row=mysqli_fetch_assoc($result)){

}

expected output
p_name| p_img       |
Xs    | xsmax.png   |  
XR    | xs.png      | 

1 个答案:

答案 0 :(得分:1)

似乎您需要在子查询中使用聚合:

SELECT product_name, product_img 
  FROM products
 WHERE (id, product_name) in
       ( SELECT MAX(id), product_name
           FROM products
          GROUP BY product_name   
       ) 

取决于“因此,我只想显示条目中第一张图片,而忽略其余图片。”