SELECT DISTINCT在一列上,在mysql中有多列

时间:2018-01-02 11:45:34

标签: php mysql sql

我必须显示结果,选择多列,但只有一列不同我还使用了以下查询,并在下面的链接中进行了评论。

查询一个。

select category , offer_id, store_image from  `tbl_coupan_offer` where
`offer_id` in (Select max(`offer_id`) FROM  `tbl_coupan_offer` group by `category`)  

以上查询返回包含重复

的所有记录

我只希望显示不重复的不同类别

以下是图片

enter image description here

在图像上,您可以看到重复旅行和配件

第二次查询

SELECT DISTINCT `category`,`offer_id`,`store_image` FROM `tbl_coupan_offer` 

我也审阅了这个链接Select all columns from rows distinct on one column

4 个答案:

答案 0 :(得分:4)

offer_id

中删除select
SELECT DISTINCT category
FROM tbl_coupon_offer;

如果您想要一个offer_id,请使用GROUP BY

SELECT category, MAX(offer_id)
FROM tbl_coupon_offer
GROUP BY category;

答案 1 :(得分:1)

就像戈登所说,但作为一个子查询来获得合适的形象。

SELECT DISTINCT q.category, ch_offer_id, store_img
FROM
(
    SELECT category, MAX(offer_id) ch_offer_id
    FROM tbl_coupan_offer
    GROUP BY category
) q
JOIN tbl_coupan_offer
ON q.ch_offer_id=tbl_coupan_offer.offer_id

答案 2 :(得分:0)

SELECT category , MAX(`offer_id`) , store_image 
FROM  `tbl_coupan_offer` 
GROUP BY `category`  

如果有多个数据,那么只需在 SELECT

之后添加DISTINCT

答案 3 :(得分:-1)

检查数据库引擎类型。这是" InnoDB"或不。如果您的数据库和表都存在,并且您发现此错误#1146表xxx不存在。然后阅读有关数据库引擎的更多信息。

如果一切正确,那么对Gordon的质询是正确的。

SELECT `category`, `offer_id`, `store_image`
FROM `tbl_coupon_offer`
GROUP BY `category`