mysql - 如何根据 SQL 中另一个表的值将值插入表中?
问题描述
所以在 SQL 中,我有一个表专辑,它有(album_id,album_name,year)我也有一个表歌曲,有(song_id,song_name,album_name)。
我使用了一个 alter table 语句向名为 album_id 的歌曲添加一列
对于属于专辑的每首歌曲,我想将其各自的专辑 ID 添加到该行
我不知道该怎么做。我已经搞定了
UPDATE songs
SET songs.album_id = (select albums.album_id FROM albums WHERE songs.album_name = albums.album_name);
但是,该子查询返回多行并给我一个错误。我还尝试distinct
在子查询中添加并在子查询中添加group by
albums.album_id。
歌曲表中有多首歌曲属于同一张专辑。每个专辑在专辑表中只出现一次。
解决方案
如果它始终是相同的 album_id,则将其限制为一个
UPDATE songs
SET songs.album_id = (select albums.album_id
FROM albums
WHERE songs.album_name = albums.album_name
LIMIT 1);
只有在您想向描述字段添加更多信息时,分组才有意义
推荐阅读
- javascript - 单击按钮后如何使输入字段为空?
- dynamic - 如何使用 CMake 混合链接静态库和共享库
- python - 如何在 bash 中写入和导出 python 文件?
- google-cloud-platform - 如何在 Google Cloud Scheduler 作业中设置内容类型
- linux - 使用 Jenkins 端到端多分支管道项目创建时出现 Git 凭证问题
- android - Android spinner 基于多表数据列比较加载内容
- java - 虽然循环程序无法正常运行
- amazon-web-services - AWS Boto3 方法“update_auto_scaling_group()”间歇性静默失败
- r - 与R中的日期模糊连接
- r - RStudio/tidyr::separate 崩溃 Windows 10