簡體   English   中英

如何在python中查詢sqlite3中的4個表?

[英]How to query 4 tables in sqlite3 in python?

這是我的桌子。 我得到 0 行回報。

CREATE TABLE Artist (
    id  INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
    name    TEXT UNIQUE
);
CREATE TABLE Album (
    id  INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
    artist_id  INTEGER,
    title   TEXT UNIQUE
);
CREATE TABLE Genre (
    id  INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
    name    TEXT
);
CREATE TABLE Track (
    id  INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
    title TEXT  UNIQUE,
    album_id  INTEGER,
    genre_id INTEGER,
    len INTEGER, rating INTEGER, count INTEGER
);

這是我的 SQL 代碼:

SELECT Track.title, Artist.name, Album.title, Genre.name 
FROM Track JOIN Genre JOIN Album JOIN Artist 
ON Track.genre_id = Genre.id and Track.album_id = Album.id 
WHERE Album.artist_id = Artist.id
ORDER BY Artist.name LIMIT 3

感謝您調查此問題。

到目前為止,您的代碼是正確的,但是您需要用記錄填充剛剛創建的表。

例如通過運行(未經測試):

INSERT INTO Artist (name) VALUES ('Artist 1'), ('Artist 2');
INSERT INTO Genre (name) VALUES ('Genre 1'), ('Genre 2');

INSERT INTO Album (title, artist_id) VALUES ('Title 1', 1);

INSERT INTO Track(title, album_id, 
    genre_id, len, rating, count) 
    VALUES ('Track 1', 1, 1, 0, 0, 0);

此外,您應該將artist_idalbum_idgenre_id列聲明為外鍵

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM