使用LISTAGG在连接表上选择多行

时间:2014-06-05 21:00:33

标签: mysql sql

假设我有以下两个表 表1 - 用户

ID UserName
001 abc
002 bcd
003 def

TAble 2 - 值

ID Tag Price
001 start 1
001 middle 2
001 end 3
002 start 3
002 end 4
003 start 1
003 middle 2
003 end 3

我对使用" start"标记的值感兴趣和"结束",即预期结果是:

001 abc 1, 2
002 bcd 3, 4
003 def 1, 3

注意:我需要表1中的UserName。

非常感谢。

1 个答案:

答案 0 :(得分:2)

你在找这样的东西吗?

select u.id, u.name, listagg(price, ', ') within group (order by price) as prices
from user u left outer join
     values v
     on u.id = v.id and v.tag in ('start', 'end')
group by u.id, u.name;