当我在mysql查询中使用Distinct函数时,我只能从表中获得一列。这是我正在使用的示例查询:
SELECT DISTINCT (subcategory.title), common_cat. * FROM `subcategory`
LEFT JOIN common_cat ON ( subcategory.title = common_cat.ctitle )
它返回如下记录:
title mid wid ctitle
Tops 17 5 Tops
Dresses NULL NULL NULL
Pants/Shorts 18 6 Pants/Shorts
Skirts NULL NULL NULL
Swimwear 24 8 Swimwear
Outerwear 21 9 Outerwear
在上面的数据“标题”字段来自子类别表。现在我也想得到id列 来自子类别表。我怎么能得到这个。
答案 0 :(得分:1)
DISTINCT的工作原理是获取表格行中提到的列的所有数据,然后过滤掉重复的行,并在所有列中显示具有相同值的唯一行。
因此,您只需将列subcategory.id添加到列列表中即可。
SELECT DISTINCT subcategory.title, subcategory.id, common_cat.* FROM `subcategory`
JOIN common_cat ON ( subcategory.title = common_cat.ctitle )
请注意,在一个不同的命令中,不建议使用*来拾取所有列,因为查询中的列数越多,数据库服务器上的负载就越多,因此输出速度就越慢。您可能只想提及不同列表中所需的列名,并从查询中删除common_cat。*。