【问题标题】:How do I do this SQL query我该如何做这个 SQL 查询
【发布时间】:2012-04-08 14:45:53
【问题描述】:

以下是我正在使用的表:

电影(mID、片名、年份、导演)

审稿人(rID,姓名)

评级(rID、mID、星数、评级日期)

我将使用哪个语句来显示所有没有评分的电影。我是 SQL 语言的新手,不太明白如何做到这一点。据我所知,这是一个相对简单的查询。

【问题讨论】:

    标签: sql database schema


    【解决方案1】:

    SELECT * FROM Movie WHERE Movie.mid NOT IN (SELECT mID FROM Rating)

    【讨论】:

      【解决方案2】:

      有三种方法可以做到这一点。我的偏好是反连接,它是一个左连接,在连接的右侧有一个用于 IS NULL 的 where 子句测试。

      SELECT * 
      FROM 
         Movie
         LEFT JOIN Rating
          ON moive.Mid = rating.mid
      WHERE
          rating.mid is null
      

      【讨论】:

        【解决方案3】:

        从没有 mID 的电影中选择 *(从评分中选择 mId)

        【讨论】:

          【解决方案4】:

          您可以使用 NOT EXISTS 子句。 Oracle 的一个很好的例子是http://www.dba-oracle.com/sql/t_subquery_not_in_exists.htm。语法可能因您的数据库而异

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多