如何在查询中合并?

时间:2015-08-05 02:00:50

标签: mysql sql

我需要一些帮助来编写查询以将名称合并到与外键关联的列表中。这是我当前的查询,

select distinct concat(c_first, ' ', c_last) as name, pmt_no 
from disbursements d
left join contacts c on c.c_no = d.b_no
where d.ba_no = 1

我的结果集如下所示

Louis Vaz, 586014

Antionette An, 690682

Brian Cald, 690682

Mark Brian, 3233902

我希望的结果是

Louis Vaz, 586014

Antionette An - Brian Cald, 690682

Mark Brian, 3233902

请注意,pmt_no 690682的所有人现在都加入了' - '将它们分开。

2 个答案:

答案 0 :(得分:3)

您可以使用GROUP_CONCAT()功能来实现您的目标:

select group_concat(distinct concat(c_first, ' ', c_last) SEPARATOR ' - ') as name, pmt_no 
from disbursements d
left join contacts c on c.c_no = d.b_no
where d.ba_no = 1
group by pmt_no

答案 1 :(得分:2)

我认为您需要group_concat()以及group_by

select group_concat(c_first, ' ', c_last separator ' - ') as names,
       pmt_no 
from disbursements d left join
     contacts c 
     on c.c_no = d.b_no
where d.ba_no = 1
group by pmt_no;