Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sqlite3 python中,如何从子键检索父键中的特定数据字段?_Python_Sqlite - Fatal编程技术网

在sqlite3 python中,如何从子键检索父键中的特定数据字段?

在sqlite3 python中,如何从子键检索父键中的特定数据字段?,python,sqlite,Python,Sqlite,在sqlite3 python中,如何从子键检索父键中的特定数据字段 CREATE TABLE artist( artistid INTEGER PRIMARY KEY, artistname TEXT ); CREATE TABLE track( trackid INTEGER PRIMARY KEY, trackname TEXT, artistid INTEGER FOREIGN KEY(artistid) REFERENCES artist(artistid)

在sqlite3 python中,如何从子键检索父键中的特定数据字段

CREATE TABLE artist(
artistid    INTEGER PRIMARY KEY, 
artistname  TEXT
);

CREATE TABLE track(
trackid     INTEGER PRIMARY KEY,
trackname   TEXT, 
artistid INTEGER
FOREIGN KEY(artistid) REFERENCES artist(artistid)
);

track.execute('''SELECT artisid, trackname FROM track WHERE artistid = 1''')

假设现在我已经执行了track表,得到了artisid和trackname,我也想检索artisname并将其放在两者之间,我该怎么做呢

如果您已经拥有艺术家ID,只需执行一个简单的
选择

SELECT artistname FROM artist WHERE artistid = ?
如果要在同一查询中检索名称,必须联接两个表:

SELECT artist.artistid,
       artist.artistname,
       track.trackname
FROM track JOIN artist ON track.artistid = artist.artistid
WHERE artist.artistid = ?