MySQL连接一对多用连字符分隔

时间:2015-01-28 14:55:00

标签: mysql join

我想知道是否可以用MySQL做到这一点:

我有两张桌子:

阈值(表格)

-idThreshold(字段) -Name(field)

threshold_results(table)

-idThreshold(字段) -idResult(field)

一个阈值可以有很多结果

我想要一个SELECT,以这种方式显示每个阈值的结果

示例:

Threshold(column)   idResults(column)
idThreshold1        IdResult1-IdResult2-idResult3
idThreshold2        IdResult1
idThreshold3        IdResult2-idResult3
idThreshold4
idThreshold5        IdResult7

谢谢!

2 个答案:

答案 0 :(得分:2)

使用GROUP_CONCAT

select t.name, group_concat(distinct r.idResult separator '-') as results
from threshold t
left join threshold_results r on r.idThreshold = t.idThreshold 
group by t.idThreshold, t.name

答案 1 :(得分:0)

这对我帮助很大,但不是我想知道是否可以通过group_concat查询结果的“#”来执行group_concat。

它产生了一个错误,例如“无效使用组功能”。

这个想法是将concat的结果分组为:

group_concat(t.name, group_concat(distinct r.idResult separator '-') separator '#')

所以我在一栏中得到了所有内容:

idThreshold1,IdResult1-IdResult2-idResult3#idThreshold2,IdResult1# and so on...