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

外部联接到中的其他一些表

  •  0
  • Daniel  · 技术社区  · 17 年前
    FROM [TABELA DE PRODUTOS/ESTOQUE] AS T1
    , [TABELA DE PRODUTOS] AS T2
    , [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3
    , [TABELA DE FORNECEDORES] AS T4
    , [TABELA DE PRODUTOS/ESTOQUE] AS T5
    WHERE (((T1.Produto)=[T2].[ID]) 
    ETC
    

    那么,如何在这些表之间添加联接呢?我需要一个左连接,比如:

    FROM [TABELA DE PRODUTOS/ESTOQUE] <- TABLE1
    LEFT JOIN [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] <- TABLE2
    ON TABLE1.ID=TABLE2.ID
    

    表1和表2是我刚加上去解释的

    谢谢。


    我必须用工会吗?

    5 回复  |  直到 17 年前
        1
  •  1
  •   Gavin Miller    17 年前

    不,你不必使用工会。如果我正确理解了你的问题,那么简单的方法就是把这些事情结合起来:

    FROM      [TABELA DE PRODUTOS/ESTOQUE]            AS T1,
              [TABELA DE PRODUTOS]                    AS T2,
              [TABELA DE MOVIMENTAÇÃO DE ESTOQUE]     AS T3A,
              [TABELA DE FORNECEDORES]                AS T4,
              [TABELA DE PRODUTOS/ESTOQUE]            AS T5,
    LEFT JOIN 
              [TABELA DE MOVIMENTAÇÃO DE ESTOQUE]     AS T3B ON T1.ID=T3B.ID
    WHERE (((T1.Produto)=[T2].[ID]) 
    
        2
  •  0
  •   Matthew Farwell    17 年前
    FROM [TABELA DE PRODUTOS/ESTOQUE] AS TABLE1
    LEFT JOIN [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS TABLE2
    ON TABLE1.ID=TABLE2.ID
    
        3
  •  0
  •   Frederik Gheysels    17 年前

    我知道您希望在不使用“join语法”的情况下外部联接一个表?

    您使用的是什么DBMS? 在FROM子句中可以这样做,但不同DBMS到DBMS的语法不同。

    例如,在SQL Server中,这是语法:

    SELECT * 
    FROM Table1, Table2
    WHERE Table1.Id *= Table2.Id
    

    另一方面,在甲骨文中,据我所记得的,你不使用asterix而是a(+)。

    不管怎样,我认为使用连接语法(左连接…)更清楚了。

        4
  •  0
  •   Gavin Miller    17 年前

    也许吧:

    FROM [TABELA DE PRODUTOS/ESTOQUE] AS T1
    , [TABELA DE PRODUTOS] AS T2
    , [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3
    , [TABELA DE FORNECEDORES] AS T4
    , [TABELA DE PRODUTOS/ESTOQUE] AS T5
    WHERE (T1.Produto=T2.ID OR T2.ID IS NULL)
    ETC
    
        5
  •  0
  •   PHeiberg    17 年前

    如果要左键联接所有表,则可以执行以下操作:

    SELECT *
    FROM [TABELA DE PRODUTOS/ESTOQUE] AS T1 
    LEFT OUTER JOIN [TABELA DE PRODUTOS] AS T2 ON T1.Key = T2.Key
    LEFT OUTER JOIN [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3 ON T2.Key = T3.Key
    LEFT OUTER JOIN [TABELA DE FORNECEDORES] AS T4 ON T3.Key = T4.Key
    LEFT OUTER JOIN [TABELA DE PRODUTOS/ESTOQUE] AS T5 ON T4.Key = T5.Key
    

    我想你得澄清一下你的问题,以免我们猜测。

    推荐文章