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)
);
저는 맨손으로, 저는 여전히 MySQL을 처음 접했습니다. 이것은 IT201 클래스의 프로젝트입니다. 질문, 단어에 대한 단어입니다 :MySQL - 테이블을 업데이트하고 다른 테이블에서 데이터 삽입하기
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의 모든 반복을 시도했다. 심지어 INSERT 명령을 시도해 보았다. 테이블에 조인했다. 나는 단지 모른다. 여기 내 최신 시도 중 하나의 샘플입니다
UPDATE music
SET
music.albumID = (SELECT albumList.albumName FROM albumList)
는 분명 내가 데이터를 구성하는 두 테이블에서 INSERT 문을 포함하지 않은가, 나는이 질문에 대한 무관 느꼈다. table.music에는 약 1000 행의 항목이 있고 table.albumList에는 약 200 개의 항목이 있다는 것을 이해하십시오.
아이디어는 albumList가 고유 한 앨범 이름을 나타내는 표이고 음악은 반복되는 곡이 많다는 것입니다. music.albumID를 albumList.ID_num에 맞게 업데이트하려고합니다. 나는 이것이 JOIN 또는 foreign keys/referencing에서 수행되지 않는다는 인상 아래에있다. 다음 질문은 이들을 참조하는 외래 키를 추가하는 것이기 때문이다. 그래서 나는 질문과 같이 힌트로, 전에 UPDATE와 중첩 된 SELECTS로 이것을 할 수 있다고 가정합니다.
당신의 업데이트가 작동하지 않습니다 : 나는 미래에 SOF를 검색하고자 다른 사람을 위해 그것을 게시 할 거라고 생각했다. 그 subselect는 여러 행의 데이터를 리턴 할 것이고 결과 세트를 단일 필드에 할당 ('=') 할 수 없습니다. 당신은 update의'join' 문법을 조사 할 필요가있다 ... –
당신은 당신의 update 문에서 join을 할 필요가있다. Music.albumID = AL.ID_num from music inner join 앨범 목록 AL.albumName = music.songalbum (숙제이기 때문에 정확한 질문은하지 않고 아이디어 만 제공합니다.) –
고맙습니다. , 이것은 확실히 숙제입니다, 저는 강사 (그리고 당신)가 정확한 답을주지 않는 것을 좋아합니다. 이전에 JOIN을 시도했지만 작동하지 않았지만 올바른 경로로 나를 보내 주셔서 감사합니다. :) 서식을 편집 해 주셔서 감사합니다. @Barranka – KocLobster