SQLite3从两个不同的表中选择

时间:2017-05-28 00:15:38

标签: sql sqlite

我想使用SQLite3创建一个新表,选择一个Album的名称 - 然后从另一个表中获取具有albumID外键的所有轨道并计算它们。是否有捷径可寻?感谢

        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
);

1 个答案:

答案 0 :(得分:1)

这应该可以达到你想要的效果:

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;