簡體   English   中英

在 mysql 中在一列中合並多行? 當具有不同值的相同 ID 時

[英]In mysql combine multiple rows in one column? when having same ID with different value

我有一個查詢,其中獲取 2 條相同 id 但不同組(列)值的記錄。 這是查詢:

SELECT rule.id, rule.rule_name,group_rule.groupName
  FROM rule LEFT JOIN rule_groups ON rule.id=rule_groups.rule_id
  LEFT JOIN group_rule ON   rule_groups.group_rule_id=group_rule.id

結果: - - - - - - - - - - - - - - - - -

|id     |rule_name   | groupName
|1      |A           | app
|1      |A           |jaz

現在想將這兩行合並到一條記錄中。 如何修改查詢以獲得預期結果。

預期的:

|id     |rule_name   | groupName
|1      |A           | app, jaz




 

我想你只想要group_concat()

select r.id, r.rule_name, group_concat(gr.groupName separator ', ')
from rule r left join
     rule_groups rg
     on r.id = rg.rule_id left join
     group_rule gr
     on rg.group_rule_id = gr.id
group by r.id, r.rule_name;

請注意,我還引入了表別名,因此查詢更易於編寫和閱讀。

暫無
暫無

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

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