在SQL中,是否可以同时使用difrent数据调用两个difrent表
所以基本上我需要的是同时得到两个表,然后使用驻留在第一个表中的条件,我想把它应用到第二个表中 如果不可能,我是否需要呼叫SELECT两次? 这个代码对吗? 确定2012年发行的所有电影的平均评级在SQL中,是否可以同时使用difrent数据调用两个difrent表,sql,sql-server,sqlite,inner-join,average,Sql,Sql Server,Sqlite,Inner Join,Average,所以基本上我需要的是同时得到两个表,然后使用驻留在第一个表中的条件,我想把它应用到第二个表中 如果不可能,我是否需要呼叫SELECT两次? 这个代码对吗? 确定2012年发行的所有电影的平均评级 SELECT AVG(rating),year FROM ratings , movies WHERE year = 2012; //these are the tables that i have CREATE TABLE movies ( id IN
SELECT AVG(rating),year FROM ratings , movies
WHERE year = 2012;
//these are the tables that i have
CREATE TABLE movies (
id INTEGER,
title TEXT NOT NULL,
year NUMERIC,
PRIMARY KEY(id)
);
CREATE TABLE stars (
movie_id INTEGER NOT NULL,
person_id INTEGER NOT NULL,
FOREIGN KEY(movie_id) REFERENCES movies(id),
FOREIGN KEY(person_id) REFERENCES people(id)
);
CREATE TABLE directors (
movie_id INTEGER NOT NULL,
person_id INTEGER NOT NULL,
FOREIGN KEY(movie_id) REFERENCES movies(id),
FOREIGN KEY(person_id) REFERENCES people(id)
);
CREATE TABLE ratings (
movie_id INTEGER NOT NULL,
rating REAL NOT NULL,
votes INTEGER NOT NULL,
FOREIGN KEY(movie_id) REFERENCES movies(id)
);
CREATE TABLE people (
id INTEGER,
name TEXT NOT NULL,
birth NUMERIC,
PRIMARY KEY(id)
);
我想您需要一个
连接
和一个聚合函数:
SELECT AVG(r.rating) avg_rating_2012
FROM ratings r
INNER JOIN movies m on m.id = r.movie_id
WHERE m.year = 2012;
如果您希望所有年份都同时使用此功能,请使用分组依据
:
SELECT m.year, AVG(r.rating) avg_rating
FROM ratings r
INNER JOIN movies m on m.id = r.movie_id
GROUP BY m.year;
这是完全可能的:它被称为“连接”。请提供几行示例数据和预期结果。我刚刚更改了代码,包括我拥有的数据表,我需要确定2012年发布的所有电影的平均评级