【问题标题】:Why is this inner join SQL block failing?为什么这个内部连接 ​​SQL 块会失败?
【发布时间】:2013-02-04 20:04:02
【问题描述】:

运行此inner join 时收到incorrect syntax near as。需要确定为什么和不能。请指出哪里出错了:

相关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
    )

【问题讨论】:

  • 我格式化了你的代码块,你可能需要一个尾括号。

标签: sql-server-2008 join inner-join


【解决方案1】:

我可能遗漏了一些东西...但由于这些都是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

【讨论】:

  • 谢谢。 Michael 和@bluefeet 刚刚发现我们可以像这样以线性方式加入表格,而我之前的信念是我们一次只能加入 2 个表格。我以这种方式简化了我的代码,并且成功了。
【解决方案2】:

您的代码看起来有太多的括号,但很难准确说出您在做什么。所以我会改变它以使用类似的东西:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    相关资源
    最近更新 更多