我将数据集放在文本文件中,格式如下:
user ID Song ID Rating
0 7171 5
0 8637 4
0 21966 4
0 35821 5
(它们之间只有一个TAB空间之间没有破折号)
我有大约100万条这样的记录。我需要生成具有流派ID的第四条记录。这个类型ID我在另一个文本文件中有它,如下面的格式:
Song ID Album ID Artist ID Genre ID
4 243 2282 0
5 7783 3832 0
6 11704 1655 106
7 10126 6328 114
8 10672 4121 0
如何为数据集中相应的“歌曲ID”生成“流派ID”。 能否请您提出最简单的方法来生成第四列。
答案 0 :(得分:1)
@ Anders Finn:他正在使用MySQL,它不支持SELECT ....INTO
(Oracle)
INSERT INTO newTable
SELECT tb1.userID, tb1.SongID, tb1.Rating, tb2.GenreID
FROM tab1
LEFT JOIN tab2
ON tab1.SongID = tab2.SongID
我会将其添加为评论,但我仍然不能。
答案 1 :(得分:0)
创建一个包含所有四列的新表:
CREATE TABLE newTable
(
userid int,
SongID int,
Rating int,
GenreID int
)
填充它:
SELECT tb1.userID, tb1.SongID, tb1.Rating, tb2.GenreID
INTO newTable
FROM tab1
LEFT JOIN tab2
ON tab1.SongID = tab2.SongID
下面 它表示语法不适用于mySQL,仅适用于Oracle。这里描述了语法fra mysql:http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
在这种情况下,结果将是:
INSERT INTO newTable (userID, SongID, Rating, GenreID)
SELECT tb1.userID, tb1.SongID, tb1.Rating, tb2.GenreID
FROM tab1
LEFT JOIN tab2
ON tab1.SongID = tab2.SongID
如果有数百万条记录,则可以在tab1和tab2上的SONGID上创建索引。