代码之家  ›  专栏  ›  技术社区  ›  Daniel

MS Access是否不支持联接表达式?

  •  4
  • Daniel  · 技术社区  · 17 年前

    有人能给我解释一下我的问题吗?

    SELECT T2.TIPOPRODUTO
        , T2.PRODUTO
        , T1.ESPESSURA
        , '' AS LARGURA
        , '' AS COMPRIMENTO
        , '' AS [ACABAM REVEST]
        , '' AS [ESPECIF QUALIDADE]
        , T1.CÓDIGORASTREABILIDADE
        , T3.DATA
        , T4.NOMEFANTASIA
        , T7.NOME
        , T5.DT_INICIO_RESERVA
        , T1.PESO
        , T5.DT_FIM_RESERVA
        , '' AS DESTINO
        , T3.OBSERVAÇÃO
        , '' AS [CUSTO TOTAL]
    FROM ([TABELA DE PRODUTOS/ESTOQUE] LEFT OUTER JOIN [TABELA DE PRODUTOS] ON ([TABELA DE PRODUTOS/ESTOQUE].PRODUTO=[TABELA DE PRODUTOS].ID))
    , [TABELA DE PRODUTOS/ESTOQUE ] AS T1
        , [TABELA DE PRODUTOS] AS T2
        , [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3
        , [TABELA DE FORNECEDORES] AS T4
        , RESERVAS_PRODUTOS_ESTOQUE AS T5
    , [TABELA DE MOVIMENTAÇÃO DE PRODUTOS/ESTOQUE] AS T6
        , [TABELA DE USUÁRIOS] AS T7
        , [TABELA DE PEDIDOS DE COMPRA] AS T8
    WHERE (((T1.Produto)=[T2].[ID]) 
        AND ((T1.ID)=[T5].[ID_PRODUTO_ESTOQUE]) 
        AND ((T5.id_vendedor)=[T7].[ID]) 
        AND ((T3.ID)=[T6].[ID]) 
        AND ((T2.ID)=[T6].[PRODUTO]) 
        AND ((T4.ID)=[T8].[FORNECEDOR]) 
        AND ((T8.Comprador)=[T7].[ID]));
    

    我的最佳猜测是它在这条线上失败了:

    ([TABELA DE PRODUTOS/ESTOQUE] LEFT OUTER JOIN [TABELA DE PRODUTOS] ON ([TABELA DE PRODUTOS/ESTOQUE].PRODUTO=[TABELA DE PRODUTOS].ID))
    
    1 回复  |  直到 17 年前
        1
  •  8
  •   Guffa    17 年前

    您将一个join语句与“classic join”(一个在where语句中带有条件的以逗号分隔的表列表)混合在一起,我认为这是不允许的。

    将查询更改为仅使用JOIN语句。在access中,必须使用括号对连接进行配对,方式如下:

    from (((t1 join t2 on ...) join t3 on ...) join t4 on ...)
    
    推荐文章