Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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
在SQL中,是否可以同时使用difrent数据调用两个difrent表_Sql_Sql Server_Sqlite_Inner Join_Average - Fatal编程技术网

在SQL中,是否可以同时使用difrent数据调用两个difrent表

在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两次? 这个代码对吗? 确定2012年发行的所有电影的平均评级

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年发布的所有电影的平均评级