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从两个不同的表中选择_Sql_Sqlite - Fatal编程技术网

SQLite3从两个不同的表中选择

SQLite3从两个不同的表中选择,sql,sqlite,Sql,Sqlite,我想使用SQLite3创建一个新表,该表选择相册的名称,然后从另一个表中,获取所有具有albumID外键的曲目,并对它们进行计数。有没有一个简单的方法可以做到这一点?谢谢 CREATE TABLE Album ( AlbumID INTEGER PRIMARY KEY NOT NULL, Title TEXT NOT NULL, ArtistID INTEGER NOT NULL, FOREIGN KEY (

我想使用SQLite3创建一个新表,该表选择相册的名称,然后从另一个表中,获取所有具有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
);

这将实现您想要的:

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;

提示:
加入
。这就是从多个表中获取信息的方式。谢谢!这是可行的,但是有没有办法保持专辑标题的原始宽度?你说的原始宽度是什么意思?文本类型的宽度未指定。