当我们在mysql查询中使用distinct时,如何获取其他列

时间:2012-05-15 10:14:59

标签: mysql

当我在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列 来自子类别表。我怎么能得到这个。

1 个答案:

答案 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。*。