1

非常に単純です...songs既存の主キー値を持つテーブルがあり、その一部はテーブルのsongsID列に既に存在していiTunesImportます。

iTunesImportコマンドのポイントは、テーブルの新しいエントリとしてテーブルから新しい値を追加することsongsです。

私はたくさんの例を読みましたが、次の構文を使用するように言われています。唯一の違いは、テーブルに特定の値SELECT DISTINCTの複数のインスタンスがあることを考えると、使用する必要があることです。songsIDiTunesImport

INSERT INTO songs(ID)
SELECT DISTINCT songsID FROM iTunesImport
WHERE (songsID IS NOT NULL)
ON DUPLICATE KEY UPDATE ID = ID

実行すると、0 行が返され、songsテーブルは変更されていません。

以下は私のテーブルのセクションです...

songs

ID, varchar(15), Not NULL   
Name, varchar(200), Not NULL    
SongType, varchar(200), NULL    
Description, varchar(1000), NULL
DebutDate, date, NULL
TimeStamp, timestamp, Not NULL

次の行で

2nd        2nd Self         Original    NULL    NULL    2014-03-11 18:46:40
3xwide     The Triple Wide  Original    NULL    NULL    2014-03-11 18:46:40
40s        40's Theme       Original    NULL    NULL    2014-03-11 18:46:40
ahab       Ahab             Original    NULL    NULL    2014-03-11 18:46:40
allintime  All in Time      Original    NULL    NULL    2014-03-11 18:46:40

iTunesImportのテーブル

iTunesImport

KEY, int(11), No
albumsID, varchar(7), Yes
songsID, varchar(15), Yes
TrackName, varchar(200), No

このテーブルには他の列がありますが、この場合は関係ありません

13  p013    stew           "Der Bluten Kat"
14  p013    stew           "Der Bluten Kat"
15  p013    stew           "Ocean Billy"
16  p014    tinkles        Miss Tinkle's Overture
17  p014    wws            Women Wine and Song >
18  p014    utopian        Utopian Fir >
19  p014    katstune       Kat's Tune >
20  p014    utopian        Utopian Fir
21  p014    billy          Ocean Billy >
22  p014    blacksabbath   Black Sabbath >
23  p014    warpigs        War Pigs >
24  p014    billy          Ocean Billy
25  p014    pequod         The Pequod >
26  p014    ahab           Ahab >
27  p014    pequod         The Pequod >
28  p014    andy           Andy's Last Beer
29  p014    mulche         Mulche's Odyssey
30  p015    dumpcity       Dump City
4

2 に答える 2

1

どうですか:

INSERT INTO songs(ID)
SELECT DISTINCT songsID FROM iTunesImport
WHERE (songsID IS NOT NULL)
AND songsID NOT IN (SELECT ID FROM songs)
于 2014-05-13T04:52:47.350 に答える