错误 #1349:View 的 select cluse 在 from 子句中包含子查询
Posted
技术标签:
【中文标题】错误 #1349:View 的 select cluse 在 from 子句中包含子查询【英文标题】:Error #1349: View's select cluse contains a subquery in the from clause 【发布时间】: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 子句中包含子查询。有什么办法可以解决这个问题吗?
【问题讨论】:
【参考方案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);
【讨论】:
以上是关于错误 #1349:View 的 select cluse 在 from 子句中包含子查询的主要内容,如果未能解决你的问题,请参考以下文章
#1349 - 视图的 SELECT 在 FROM 子句中包含一个子查询
ERROR 1349:视图的 SELECT 在 FROM 子句中包含子查询
CreateProcessWithUser 无法模拟用户,出现错误 87、1349