Вы можете использовать синтаксис обновления / соединения следующим образом:
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
, которые не совпадают в других таблицах, в то время как первый запрос оставляет такие строки нетронутыми.