簡體   English   中英

mysql 使用 CONCAT 從另一個表更新表列

[英]mysql update table column from another table with CONCAT

我正在嘗試解決如何從表 A 到表 B 中執行 SQL UPDATE 表列。我遇到的問題是嘗試將表 A 列 X 中的多個值連接到表 B 列 Y

表A結構id | 興趣 1 | 保齡球 2 | 游泳 1 | 籃球

TableB 結構標識 | 興趣_新 1 | null 2 | null

我希望表 B 有以下數據

表 ID | 興趣_新 1 | 保齡球,籃球 2 | 游泳

這是我對 SQL 查詢的嘗試,但它沒有連接,只是用第一個匹配更新了表 B

    UPDATE TableB 
INNER JOIN TableA ON TableB.id= TableA.id
SET TableB.id=CONCAT(TableA.id, ',')
where TableA.id= TableB.id;

您可能打算在這里使用GROUP_CONCAT ,因為您想要一個聚合的 CSV output:

UPDATE TableB b
INNER JOIN
(
    SELECT id, GROUP_CONCAT(Interest ORDER BY id) Interests
    FROM TableA
    GROUP BY id
) a
    ON a.id = b.id
SET
    Interest_new = a.Interests;

但是,我實際上主張要這樣做,因為將 CSV 存儲在 SQL 表中通常是個壞主意。 考慮只查看這些數據:

CREATE VIEW newInterests AS
SELECT id, GROUP_CONCAT(Interest ORDER BY id) Interests
FROM TableA
GROUP BY id;

暫無
暫無

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

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