0
保存されているすべてのトラックの中で最も長い10の曲を保持する新しいプレイリストを作成するだけです。ここで私のコードと下のスキーマは、Colud誰かがPlaylistTrackにPlaylistとTrackのforiegnキーを関連付ける方法を説明してください。SQLite3での外部キーの関連付け
INSERT INTO Playlist (PlaylistID, Name)
VALUES (19, 'Background Music');
SELECT TrackID, Name, Millisecond
FROM Track
ORDER BY Millisecond DESC
LIMIT 10
JOIN Track.TrackID = PlaylistTrack.TrackID
WHERE Playlist.Name = 'Background Music';
SCHEMA:
CREATE TABLE Playlist
(
PlaylistID INTEGER PRIMARY KEY NOT NULL,
Name TEXT
);
CREATE TABLE PlaylistTrack
(
PlaylistID INTEGER NOT NULL,
TrackID INTEGER NOT NULL,
PRIMARY KEY (PlaylistID, TrackID),
FOREIGN KEY (PlaylistID) REFERENCES Playlist (PlaylistID)
ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (TrackID) REFERENCES Track (TrackID)
ON DELETE NO ACTION ON UPDATE NO ACTION
);
CREATE TABLE Track
(
TrackID INTEGER PRIMARY KEY NOT NULL,
Name TEXT NOT NULL,
AlbumID INTEGER,
MediaTypeID INTEGER NOT NULL,
GenreID INTEGER,
Composer TEXT,
Millisecond INTEGER NOT NULL,
Byte INTEGER,
UnitPrice REAL NOT NULL,
FOREIGN KEY (AlbumID) REFERENCES Album (AlbumID)
ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (GenreID) REFERENCES Genre (GenreID)
ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (MediaTypeID) REFERENCES MediaType (MediaTypeID)
ON DELETE NO ACTION ON UPDATE NO ACTION
);
感謝。
ねえ、私はいくつかの変更をテストしてみましたので、助けFOTおかげで、私はそのコードでエラーになりました。このコードは、私にエラーがないだけでなく、答えを与えるhaha、あなたは私に任意のポインタを与えることができますか? SELECT t.TrackID、t.Name、t.Millisecond トラックT INNER JOIN FROM PlaylistTrack P ON t.TrackID = p.TrackID WHERE t.Millisecond DESC 限界によってp.PlaylistID = 19 ORDER 10; –
@JamesPeters私の答えには、迷いセミコロンがありました。あなたが盲目的に私が上に与えたものを切り取って貼り付けると、あなたは誤りを起こしたでしょう。 2番目のクエリに関しては、おそらくテーブルに一致するレコードがありません。 –