运行此incorrect syntax near as
时收到inner join
。需要确定原因和不能。请指出出错的地方:
相关SQL代码
from
(
(
(dbo.task inner join dbo.projwbs on dbo.task.proj_id=dbo.projwbs.wbs_id) as tmptb1
inner join
(dbo.task inner join dbo.project on dbo.task.proj_id=dbo.project.proj_id) as tmptb2
on dbo.tmptb1.proj_id=dbo.tmptb2.proj_id as dbo.tmptb3
)
inner join
(
(dbo.task inner join dbo.rsrc on dbo.task.rsrc_id=dbo.rsrs.rsrc_id) as tmptb4)
on tmptb3.proj_id=tmptb4.proj_id
)
答案 0 :(得分:3)
您的代码看起来有太多括号,但很难准确说出您在做什么。所以我会改变它以使用类似的东西:
select *
from
(
select *
from
(
select *
FROM dbo.task
inner join dbo.projwbs
on dbo.task.proj_id=dbo.projwbs.wbs_id
) as tmptb1
inner join
(
select *
from dbo.task
inner join dbo.project
on dbo.task.proj_id=dbo.project.proj_id
) as tmptb2
on tmptb1.proj_id=tmptb2.proj_id
) as tmptb3
inner join
(
select *
from dbo.task
inner join dbo.rsrc
on dbo.task.rsrc_id=dbo.rsrs.rsrc_id
) as tmptb4
on tmptb3.proj_id=tmptb4.proj_id
将SELECT *
替换为您希望从每个表中添加的列。
我不确定你为什么要做所有这些子查询来获取数据,你应该可以使用:
select *
from dbo.task t
inner join dbo.projwbs w
on t.proj_id=w.wbs_id
inner join dbo.project p
on t.proj_id=p.proj_id
inner join dbo.rsrc r
on t.rsrc_id = r.rsrc_id
答案 1 :(得分:3)
我可能会遗漏一些东西......但由于这些都是inner joins
,我不确定这些块会给你一个简化版本也不会这样做:
from
dbo.task t
inner join dbo.projwbs pw on t.proj_id=pw.wbs_id
inner join dbo.project p on t.proj_id=p.proj_id
inner join dbo.rsrc r on t.rsrc_id=r.rsrc_id