0

这是我的代码:

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 子句中包含子查询。有什么办法可以解决这个问题吗?

4

2 回答 2

0

如果我没记错的话,你正在使用 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);
于 2014-05-05T08:31:02.300 回答
0

声明说...

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

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

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

于 2014-05-05T07:23:02.017 回答