gpt4 book ai didi

php - mysql更新查询以使用另一个表的id设置字段

转载 作者:可可西里 更新时间:2023-11-01 08:28:39 26 4
gpt4 key购买 nike

数据库中有3个表

1) 视频。

id    name
1 one
2 two
3 three

2) session_has_video。

session_id    video_id
1 1
1 3

3) channel_has_session。

channel_id    session_id    videos
1 1

我想用所有 video.id 更新 channel_has_session.videos,其中 video.idsession.session_id。这意味着它应该是 1,3

所以,更新后的表应该是这样的

channel_has_session。

channel_id    session_id    videos
1 1 1,3

我试过这个查询,但显然不起作用。

update channel_has_session set videos = ( SELECT video_id FROM session_has_video where session_id=1 ) where session_id=1 and channel_id=1

在 MySQL 中有没有最简单的方法来做到这一点?

最佳答案

您可以将 channel_has_session 表连接到包含每个 session_id 及其以逗号分隔的 video_id 值列表的临时表。然后使用此 CSV 列表在 channel_has_session 表上执行 SET。试试这个查询:

UPDATE
channel_has_session AS ch
INNER JOIN (
SELECT session_id, GROUP_CONCAT(video_id) AS videos
FROM session_has_video
GROUP BY session_id
) AS t on ch.session_id = t.session_id
SET ch.videos = t.videos
WHERE ch.channel_id = 1 AND ch.session_id = 1

关于php - mysql更新查询以使用另一个表的id设置字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32450126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com