【问题标题】:How to INTERSECT datas from tables on postgres如何从 postgres 上的表中交叉数据
【发布时间】:2015-10-23 03:20:12
【问题描述】:

我在使用 INTERSECT command 时遇到了一些问题。希望有人可以帮助我。

我想获取出现在第一个和第二个SELECT 中的movieid。之后,我想使用这些数据(可能在 10 个 LIMIT 中)在另一个表中接收电影的标题。

类似这样,但我做得不对:

SELECT movieid
FROM ratings
WHERE votes > 0
  INTERSECT SELECT movieid FROM genres WHERE genre = '$_SESSION[genero]'

在这种情况下,我应该得到同时出现在收视率和流派表上的电影。

在此之后,我想获取这些movieid并在表movie中搜索movieid并最终显示标题。谢谢!

【问题讨论】:

    标签: sql postgresql select intersect


    【解决方案1】:

    据我理解的问题,我认为这就是你要找的

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

    【讨论】:

    • 部分工作就像一个魅力!唯一的问题是无法识别“$_SESSION[genero]”。如果我改变它,它会起作用。知道我可以做些什么来使 '$_SESSION[genero]' 工作吗?编辑:我正在使用 $_SESSION[genero] 并且它显示的值没有问题,但是当我把它放在查询中时,它不起作用......
    • 对不起,我不知道 postgresql。我假设 SELECT movieid FROM genres WHERE genre = '$_SESSION[genero] 对你有用,所以查询的其余部分是最重要的。
    【解决方案2】:
    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]'
    

    【讨论】:

      猜你喜欢
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      相关资源
      最近更新 更多