0

当我在 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 列。我怎么能得到这个。

4

1 回答 1

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.*。

于 2012-05-15T10:25:07.913 回答