SQLite3从两个不同的表中选择

问题描述:

我想创建一个使用SQLite3来选择一个专辑名称的新表,然后从另一个表中获取所有具有albumID外键的曲目并对它们进行计数。是否有捷径可寻?由于SQLite3从两个不同的表中选择

 CREATE TABLE Album 
    (
     AlbumID INTEGER PRIMARY KEY NOT NULL, 
     Title TEXT NOT NULL, 
     ArtistID INTEGER NOT NULL, 
     FOREIGN KEY (ArtistID) REFERENCES Artist (ArtistID) 
        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 
); 
+0

提示:'JOIN'。这就是你如何从多个表中获取信息。 –

这应该完成你想要的:

SELECT a.Title, COUNT(a.Title) 
FROM Album AS a 
    JOIN Track AS b ON b.AlbumID = a.AlbumID 
GROUP BY a.AlbumID 
ORDER BY a.Title; 
+0

谢谢!这有效,但无论如何要保持专辑标题的原始宽度? –

+1

你是什么意思的原始宽度?文本类型具有未指定的宽度。 –