[英]How to query 4 tables in sqlite3 in python?
Here are my tables.这是我的桌子。 I get 0 rows return.
我得到 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
);
Here my SQL code:这是我的 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
I appreciate your looking into this problem.感谢您调查此问题。
You code is correct sofar, but you need to fill the just created tables with records.到目前为止,您的代码是正确的,但是您需要用记录填充刚刚创建的表。
For example by running (untested):例如通过运行(未经测试):
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);
Also you should declare artist_id
, album_id
and genre_id
columns as foreign keys .此外,您应该将
artist_id
、 album_id
和genre_id
列声明为外键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.