gpt4 book ai didi

mysql - 更新一个表并从另一个表插入数据

转载 作者:行者123 更新时间:2023-11-29 20:54:34 26 4
gpt4 key购买 nike

CREATE TABLE IF NOT EXISTS music 
(
songname varchar(98) DEFAULT NULL,
songartist varchar(29) DEFAULT NULL,
songalbum varchar(60) DEFAULT NULL,
albumID INT,
songlength decimal(6,2) DEFAULT NULL,
songgenre varchar(18) DEFAULT NULL,
songyear int DEFAULT NULL,
songplays INT DEFAULT NULL
);

CREATE TABLE IF NOT EXISTS albumList
(
ID_num INT NOT NULL AUTO_INCREMENT,
albumName VARCHAR(30),
PRIMARY KEY (ID_num)
);

这是我的 IT201 类(class)中的一个项目。问题逐字逐句是:

Update the music table to set the albumID number to the corresponding album ID number from the new album table. (Hint: use a nested select statement.)

我以前做过类似的事情,没有任何问题,我真的很喜欢这种语言,但我似乎不知道我做错了什么。我已经尝试了我能想到的每次更新迭代,我什至尝试了一些插入命令,连接表..我只是不知道。这是我最新尝试之一的示例:

UPDATE music
SET
music.albumID = (SELECT albumList.albumName FROM albumList)

显然我没有包含来自任一表的组成数据的 INSERT 语句,我觉得这与这个问题无关。只需了解 table.music 中大约有 1000 行条目,table.albumList 中大约有 200 行条目。

这个想法是,albumList 是一个包含唯一专辑名称的表,而音乐有许多重复的名称。我正在尝试更新 music.albumID 以对应 albumList.ID_num。我的印象是这不是通过 JOIN 或外键/引用完成的,因为下一个问题是添加引用这些的外键。所以我认为这可以通过 UPDATE 和之前的嵌套 SELECTS 来完成,正如问题所暗示的那样。

最佳答案

以下 SQL 应该会有所帮助,尽管我假设 music 上的 Songalbum 包含与 albumList 上的 albumname 相同的数据(这可能不正确,因为字段大小不同)。它将 music 上的 albumID 设置为 albumList 中的 ID_Num,其中 songalbum匹配 albumName

UPDATE music  SET albumID = (SELECT a.ID_Num FROM albumList a  
Join music m on m.songalbum = a.albumName)

关于mysql - 更新一个表并从另一个表插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37732768/

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