【发布时间】:2013-01-12 11:12:58
【问题描述】:
我有三张桌子:
CREATE TABLE Movie
(
movieId INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
title VARCHAR(255) NOT NULL,
moviePath VARCHAR(500) NOT NULL
);
CREATE TABLE Rating
(
rid INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
mid INTEGER FOREIGN KEY REFERENCES Movie(movieId) ON DELETE CASCADE,
uid INTEGER FOREIGN KEY REFERENCES User(id) ON DELETE CASCADE,
rating INTEGER NOT NULL,
);
CREATE TABLE Genre(
id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
movieId INTEGER NOT NULL FOREIGN KEY REFERENCES Movie(movieId) ON DELETE CASCADE,
genre VARCHAR(255) NOT NULL
);
我想创建一个 sql 查询,从最常见的类型返回最常见的电影(带有电影路径、标题)。
有什么想法吗?
更新
结果:
| MID | TITLE | MOVIEPATH |
--------------------------------
| 4 | Happy days | a |
| 4 | Happy days | a |
【问题讨论】:
-
我认为
movieId不应该在Genre表中,但GenreId应该在Movie表中。对于这样的查询,您的表不完整,您需要一些额外的详细信息。 -
在你当前的表格中,每个流派都可以有一部电影,但是对于我告诉过的表格,每部电影都有一个流派。
-
@MahdiTahsildari 真的是一部电影可以有不止一种类型吗?在将示例数据添加到 OP 表时,我考虑到了这一点,因为它是没有示例数据的盲目猜测..