mysql加入一对多关系并在不同行中打印

mysql join one to many relationship and print in different rows

我有一个 table 例如 citations 包含:

paperkey 
1
2

和另一个 table source 包含

paperkey | authors
1          a
1          b
1          c
2          d
2          e
3          x
5          y 
6          z
6          a

tablecitation中的paperkeysourcetable中paperkey的子集。所以我需要在 table 引用中使用 paperkeyauthors。我的预期输出是:

1          a
1          b
1          c
2          d
2          e

我试过了,但找不到相关查询。目前我有查询:

select a.paperkey, groupconcat(b.authors)
from citations a
left join source b
on a.paperkey = b.paperkey
group by a.paperkey;

但结果是

1         a,b,c
2         d,e

这是我能做的最好的了。但我需要生成我期望的输出,以便作者在不同的行中打印,我找不到任何类似的查询。

您不需要对结果进行分组,您应该只需要像这样对结果进行排序:

select a.paperkey, b.authors
from citations a
left join source b using(paperkey)
order by b.paperkey, b.authors;

我个人会使用,因为列名相同。