0

我正在为一个查询而苦苦挣扎。

我有两张桌子:

CREATE TABLE Playlist(
    id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
);



CREATE TABLE PlaylistMovies(
    mid INTEGER FOREIGN KEY REFERENCES Movie(movieid) ON DELETE CASCADE,
    pid INTEGER FOREIGN KEY REFERENCES Playlist(id) ON DELETE CASCADE,   
    PRIMARY KEY (mid, pid)
);

我想找到电影最多的播放列表(计算中)。

如何解决这个问题?

4

1 回答 1

1

请尝试一下:

询问:

select top 1 pl.pid, p.name,
         count(pl.mid) as count_id
  from playlistmovies pl
  left join playlist p
  on p.id = pl.pid
  group by pl.pid, p.name
  order by count_id desc
;

结果:

| PID | NAME | COUNT_ID |
-------------------------
|   1 |   p1 |        5 |
于 2013-01-12T15:27:34.863 回答