Mysql Distinct行2列

时间:2018-07-04 13:13:25

标签: mysql

我有一个查询:

SELECT p.productid, p.dupproductid
FROM products p, categories c
WHERE c.catid = p.catid && (c.parent IN(2257) || p.catid = 2257)
GROUP BY p.productid

这将返回:

productid dupproductid
23423     0
54345     0
34234     33333
23423     33333
45345     0
34324     11111
46546     0

除了0之外,我只希望获得唯一的dupproductid,所以我不能使用GROUP BY

我希望它退回

productid dupproductid
23423     0
54345     0
34234     33333
45345     0
34324     11111
46546     0

3 个答案:

答案 0 :(得分:0)

您可以不执行“选择DISTINCT”吗?这对您没有帮助吗?如果不能,您能否确切说出您希望桌子显示的内容?对于您是否仍然希望显示返回“ 0”的行,我感到困惑。您能给我更多信息吗?

答案 1 :(得分:0)

只使用最小聚合函数,当结果集保持为0时

 SELECT p.productid, min(p.dupproductid) as dupproductid
    FROM products p, categories c
    WHERE c.catid = p.catid && (c.parent IN(2257) || p.catid = 2257)
    GROUP BY p.productid

答案 2 :(得分:0)

如果您要删除最小ID,那么它将对您有用-

class A<T> {
   public data: T;
}

Sql Fiddle为您- http://www.sqlfiddle.com/#!18/db18b/2