如何将SQL查询的输出连接成一个字符串

时间:2010-07-21 11:15:36

标签: mysql

我是编写SQL查询的新手,这是针对mySQL数据库的。

我有一个名为PatientVisit(PV)的表,它与BillMaster(BM)一对一。每次访问都有一个账单,然后与BillDetail(BD)一对一。当我从PatientVisit(PV)列出访问详细信息时,我需要打印一个字符串,其中包含与该访问相关联的“ServiceName”列。

因此,例如,PatientVisit.ID号码'1'具有相应的BillMaster.Bill No'1',其在BillDetail'咨询'和'穿衣'中有2个条目。

当我打印访问1的详细信息时,我需要'咨询,换装'作为“服务名称”列的一个字符串值。

如果我有一对一的话,那么查询就会很简单,如下所示:

select PV.ID, BM.BillNo,  BD.ServiceName 
FROM PatientVisits PV INNER JOIN BillMaster BM ON BM.VisitID = PV.ID 
INNER JOIN BillDetail BD ON BD.BillNo = BM.BillNo
WHERE ....

但是,由于ServiceName列是一对多,所以如何编写此查询?

谢谢, 泽。

1 个答案:

答案 0 :(得分:0)

试试这个

select PV.ID, BM.BillNo, 
    GROUP_CONCAT(BD.ServiceName)
    FROM PatientVisits PV INNER JOIN BillMaster BM ON BM.VisitID = PV.ID 
    INNER JOIN BillDetail BD ON BD.BillNo = BM.BillNo
    WHERE ..
    GROUP BY PV.ID,BM.BillNo

...