oracle 使用left join

zsy475297287 2013-05-08 09:24:48
select plate.plateID,PlateName,PlateState,PlateRemarks,Topic.TopicTitle,AnswerCountA,userInfo.username
from plate
left join Topic
on Topic.plateID=plate.plateID and TopicTope='置顶帖'
left join userInfo
on Topic.userID=userInfo.userID
left join (select TopicID,count(*) as AnswerCountA
from Answer group by TopicID) as userTopic
on Topic.TopicID = userTopic.TopicID
where ParentID=:ParentID

这个语句在as那里报错,显示缺少关键字,这是什么错?我之前在SQL 2008里运行过是正确的,但是在ORACLE里面就有问题。。有没有大神可以解释下??
...全文
338 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vanjayhsu 2013-05-09
  • 打赏
  • 举报
回复
(select TopicID,count(*) as AnswerCountA from Answer group by TopicID) as userTopic --这个是一个子查询,作用类似于一个表,而不是一个字段,所以不能用as。去掉as就可以了。
u010412956 2013-05-09
  • 打赏
  • 举报
回复
sqlserver 能运行的,oracle未必就能运行吧。。 除非是标准的sql92语法。 而你这个也不是。。 oracle里面表别名直接写就行了,不需要as,不像字段可以用as
cyuyanzhiwen 2013-05-09
  • 打赏
  • 举报
回复
我觉得你写的不对。 select plate.plateID,PlateName,PlateState,PlateRemarks,Topic.TopicTitle,AnswerCountA,userInfo.username from Topic plate left join plate on Topic.plateID=plate.plateID and TopicTope='置顶帖' left join userInfo on Topic.userID=userInfo.userID left join (select TopicID,count(*) as AnswerCountA from Answer group by TopicID) userTopic on Topic.TopicID = userTopic.TopicID where ParentID=:ParentID; 这样试试
sych888 2013-05-09
  • 打赏
  • 举报
回复
去掉就OK了
烽火扬州路 2013-05-08
  • 打赏
  • 举报
回复
Oracle子表别名不需要用as,去掉试试。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧