在mysql中遇到麻烦

时间:2018-04-30 20:47:41

标签: mysql sql inner-join

我在mySQL工作,并为评论,评论家和电视剧制作了一个假数据库。所以我制作了3个不同的表格,一个用于评论者,一个用于评论,一个用于系列。

CREATE TABLE reviewers
(
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(150) NOT NULL
);

CREATE TABLE series
(
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
released_year YEAR(4),
genre VARCHAR(50)
);

CREATE TABLE reviews(
id INT AUTO_INCREMENT PRIMARY KEY,
rating DECIMAL(2,1),
series_id INT,
reviewer_id INT,
FOREIGN KEY(series_id) REFERENCES series(id),
FOREIGN KEY(reviewer_id) REFERENCES reviewers(id)
);

我想问的问题是,如何从每位评论者那里获得最高评分,以及他们给出的哪个节目?

更新

我想出了这段代码

SELECT first_name,last_name,title, a.series_id,a.rating FROM
( SELECT series_id,MAX(rating) AS max FROM reviews 
 GROUP BY series_id ) AS b
 INNER JOIN reviews AS a
 ON a.series_id=b.series_id AND a.rating=b.max
 INNER JOIN reviewers
 ON reviewers.id=a.reviewer_id
 INNER JOIN series
 ON series.id=a.series_id
 GROUP BY series_id;

给出了每个系列中的最高评分以及谁给出了该评分

0 个答案:

没有答案
相关问题