SQL 合并具有相同 ID 的行

时间:2021-04-14 11:44:16

标签: php tsql

我有两个表,我需要合并行。

据我所知:

$sql = "SELECT A.AID, A.Street, B.FirstName, B.LastName                                     
        FROM A 
        LEFT JOIN B 
        ON A.AID = B.AID;";

你能帮我合并这些行吗,几个人住在同一条街上?

Combine rows with INNER JOIN

1 个答案:

答案 0 :(得分:0)

如果您使用 MySQL,那么您将使用 GROUP_CONCAT() 或 JSON 聚合函数。思路是:

SELECT A.AID, A.Street,
       GROUP_CONCAT(B.FirstName, ' ', B.LastName SEPARATOR ', ') as names                                 
FROM A LEFT JOIN
     B 
     ON A.AID = B.AID
GROUP BY A.AID, A.Street;

在 SQL Server 中,您将使用 string_agg():

SELECT A.AID, A.Street,
       STRING_AGG(CONCAT(B.FirstName, ' ', B.LastName), ', ') as names                                 
FROM A LEFT JOIN
     B 
     ON A.AID = B.AID
GROUP BY A.AID, A.Street;