簡體   English   中英

group_concat問題(mysql)

[英]group_concat question (mysql)

我在弄清楚如何使用group_concat產生某些輸出時遇到了一些麻煩。

這是我所擁有的:2張桌子:

第一個包含客戶的信息,

第二個包含每個客戶的動物信息。

我必須產生此輸出:(我省略了邊界,但基本上這是表的一列)

Client: 25 Harris, Eddie
Animals: Koshka(cat),Gutsy(snake),Edger(snake),Fritz(cat),George(turtle),Big Mike(turtle)

這是我嘗試過的:

select  group_concat ( distinct 
        'Client: ', CL.cl_id, space(1), 
        CL.cl_name_last,', ', 
        CL.cl_name_first,'\n',
        'Animals: ', AN.an_name, '(', 
        ifnull(AN.an_type, 'No Animals'), ')', '\n') as 'Client Info'
from p_vets.vt_clients CL 
join p_vets.vt_animals AN using (cl_id) 
group by CL.cl_id;

我得到以下輸出(表中的一小部分):

Client: 25 Harris, Eddie
Animals: Koshka(cat)
,Client: 25 Harris, Eddie
Animals: Gutsy(snake)
,Client: 25 Harris, Eddie
Animals: Edger(snake)
,Client: 25 Harris, Eddie
Animals: Fritz(cat)
,Client: 25 Harris, Eddie
Animals: George(turtle)
,Client: 25 Harris, Eddie
Animals: Big Mike(turtle)

我不了解如何將動物分組以顯示在其所屬的每個客戶下。

謝謝您的幫助。

group_concat應該只包含動物部分。

嘗試這個:

select  concat(
          'Client: ', CL.cl_id, space(1), CL.cl_name_last,', ', CL.cl_name_first,'\n',
          'Animals: ', group_concat(
            concat( AN.an_name,'(',coalesce(AN.an_type, 'No Animals'),')')
          )
        )
from p_vets.vt_clients CL 
join p_vets.vt_animals AN using (cl_id) 
group by cl_id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM