[英]How to join two tables of mysql and concatenate multiple rows into single cell?
如何連接兩個sql表並將多行連接成單個單元格?
我正在使用的查詢::
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID;
我得到的輸出::
約翰·多伊 101
約翰·多伊 102
約翰·多伊 103
約翰·多伊 104
預期輸出::
約翰·多伊 101,102,103,104
使用GROUP_CONCAT
並按客戶聚合生成訂單的 CSV 列表:
SELECT
c.CustomerName,
GROUP_CONCAT(o.OrderID) AS OrderIDs
FROM Customers c
LEFT JOIN Orders o
ON c.CustomerID = o.CustomerID
GROUP BY
c.CustomerId;
請注意,如果可能,最好按客戶 ID 聚合,因為可能有兩個或多個客戶具有相同的名稱。
Group concat 是實現所需輸出的最簡單方法。
使用group_concat
SELECT Customers.CustomerName, group_concat(Orders.OrderID) as OrderID
FROM Customers LEFT JOIN Orders ON Customers.CustomerID=Orders.CustomerID
group by Customers.CustomerName;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.