簡體   English   中英

如何連接兩個mysql表並將多行連接成單個單元格?

[英]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;

我得到的輸出::

客戶名稱 OrderId

約翰·多伊 101

約翰·多伊 102

約翰·多伊 103

約翰·多伊 104

預期輸出::

客戶名稱 OrderId

約翰·多伊 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.

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