Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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 如何将postgres表中的数据进行交叉_Sql_Postgresql_Select_Intersect - Fatal编程技术网

Sql 如何将postgres表中的数据进行交叉

Sql 如何将postgres表中的数据进行交叉,sql,postgresql,select,intersect,Sql,Postgresql,Select,Intersect,我在使用INTERSECT命令时遇到了一些问题。希望有人能帮助我 我想获取出现在第一个和第二个选择中的电影ID。之后,我想使用这些数据(可以是10的限制)来接收另一个表中的电影标题 像这样,但我做得不对: SELECT movieid FROM ratings WHERE votes > 0 INTERSECT SELECT movieid FROM genres WHERE genre = '$_SESSION[genero]' 在这种情况下,我应该得到出现在收视率和流派表上的电影

我在使用INTERSECT命令时遇到了一些问题。希望有人能帮助我

我想获取出现在第一个和第二个
选择中的电影ID。之后,我想使用这些数据(可以是10的
限制
)来接收另一个表中的电影标题

像这样,但我做得不对:

SELECT movieid
FROM ratings
WHERE votes > 0
  INTERSECT SELECT movieid FROM genres WHERE genre = '$_SESSION[genero]'
在这种情况下,我应该得到出现在收视率和流派表上的电影


在这之后,我想获得这些电影ID并在表movies中搜索电影ID,最后显示标题。谢谢大家!

就我所理解的问题而言,我想这就是你想要的

select title , movieid from movies
where movieid in 
(
        SELECT movieid FROM ratings
        WHERE votes > 0
    INTERSECT 
        SELECT movieid FROM genres 
        WHERE genre = '$_SESSION[genero]'
)

工作就像一个魅力,部分!唯一的问题是无法识别“$\u会话[慷慨]”。如果我改变这个,它会工作。你知道我该怎么做才能让“$\u SESSION[慷慨”有效吗?编辑:我正在使用$\u SESSION[慷慨解囊],它可以毫无问题地显示值,但当我将其放入查询时,它不起作用……很抱歉,我不知道postgresql。我假设
SELECT movieid FROM genres,其中genre='$\u SESSION[genro]
对您有效,因此查询的其余部分位于此之上。
select distinct m.title , movieid
from
    movies m
    inner  join
    ratings r using (movieid)
    inner join
    genres g using (movieid)
where r.votes > 0 and g.genre = '$_SESSION[genero]'