【问题标题】:Error #1349: View's select cluse contains a subquery in the from clause错误 #1349:View 的 select cluse 在 from 子句中包含子查询
【发布时间】:2014-05-05 07:02:10
【问题描述】:

这是我的代码:

SELECT CAST.first_name,
  CAST.last_name,
  AWARDED.castID,
  COUNT(*) AwardsWon
FROM AWARDED,
  ROLE,
  CAST
WHERE ROLE.role    = "Director"
AND ROLE.castID    = AWARDED.castID
AND ROLE.movieID   = AWARDED.movieID
AND AWARDED.castID = CAST.castID
GROUP BY castID
HAVING COUNT(*) =
  (SELECT MAX(cnt) FROM
    (SELECT COUNT(*) cnt FROM AWARDED GROUP BY CastID
    ) z
  )

当我尝试从此代码创建视图时,我收到以下形式的错误:#1349 视图的选择在 from 子句中包含子查询。有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: sql querying


    【解决方案1】:

    声明说...

    • SELECT 语句不能在 FROM 子句中包含子查询。

    您的解决方法是为每个子查询创建一个视图。

    然后从您的视图中访问这些视图

    【讨论】:

    • 不确定这有什么帮助。
    【解决方案2】:

    如果我没记错的话,您使用的是 MySQL。不确定,但您所说的查询可以转换如下。试一试。

    SELECT `CAST`.first_name,
      `CAST`.last_name,
      AWARDED.castID,
      COUNT(AWARDED.castID) AwardsWon
    FROM AWARDED
    JOIN ROLE
    ON ROLE.movieID = AWARDED.movieID
    AND ROLE.castID = AWARDED.castID
    JOIN `CAST`
    ON AWARDED.castID = `CAST`.castID
    WHERE ROLE.role = 'Director'
    GROUP BY AWARDED.castID,`CAST`.first_name,`CAST`.last_name
    HAVING COUNT(*) = MAX(AwardsWon);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 2014-07-09
      • 2020-02-08
      • 2012-01-15
      • 1970-01-01
      相关资源
      最近更新 更多