MYSQL SELECT和列中的DISTINCT值以及来自另一个的相应值

时间:2013-07-16 17:19:04

标签: mysql select distinct

我在数据库中有一个列,我使用下面的代码从该列中获取不同的值

"SELECT DISTINCT category FROM galleryinfo"

我有另一列,其中包含相关图片的路径。

所以我的问题是如何从类别中获取唯一/不同的值以及从另一列获得相应的路径。

提前感谢您的帮助。

id    path           category
1     img1           car
2     img2           car
3     img3           truck
4     img4           truck
5     img5           bike

我需要的结果是

img1   car     
img3   truck   
img5   bike

1 个答案:

答案 0 :(得分:1)

您可以使用GROUP BY查询将结果减少到每个不同类别的一行:

SELECT category, path FROM galleryinfo GROUP BY category

这个问题是这个查询返回的任意 路径。事实上,在大多数SQL实现中,这是一个非法查询并导致错误。 MySQL更宽松,但它将返回与类别相匹配的任意路径(实际上,它选择了第一行中与物理存储相关的路径,但这没有记录或保证)。

您可以选择MIN(path)MAX(path),也可以将每个类别的所有路径连接成一个带GROUP_CONCAT(path)的字符串,但这就是它。