[英]MySQL statement for group_concat in Update from two other tables
我在下面有 3 個表我正在嘗試為表 cart_session 中的“item”列編寫group_concat
語句
餐桌products
id name
------------------------
123 | car
456 | boat
789 | house
--------------------------------
表cart_items
pid session
----------------------
123 | ABCD
456 | ABCD
789 | EFGH
----------------------------------
表cart_session
id item
----------------------------
ABCD | car,boat
EFGH | house
您可以按如下方式使用更新/加入語法:
update cart_session cs
inner join (
select ci.session, group_concat(p.name) item
from products p
inner join cart_items ci on ci.pid = p.pid
group by ci.session
) x on x.session = cs.session
set cs.item = x.item
另一個選項使用相關子查詢:
update cart_session cs
set cs.item = (
select group_concat(p.name)
from products p
inner join cart_items ci on ci.pid = p.pid
where ci.session = cs.session
)
這略有不同:此查詢會將null
值分配給cart_session
中在其他表中沒有匹配的行,而第一個查詢將這些行保持不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.