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

从多个表中选择数据并使用左联接?

  •  1
  • Ben  · 技术社区  · 15 年前

    我有一个问题不起作用,让我发疯了。基本上,这就是我想要达到的目标:

    SELECT
      table1.field1,
      table1.field2,
      table2.field1,
      table3.field1
    FROM
      table1,
      table2
    LEFT JOIN
      table3
    ON table3.field1 = table2.field1
    

    但由于某种原因,我无法执行这个查询。我认为这是因为在要求从多个表中选择后执行了联接。因为当我从1个表中选择时,这个查询可以工作。

    当我想从多个表中选择并使用联接时,有人能告诉我该怎么做吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   D'Arcy Rittich    15 年前

    你可能想加入 ON 第一次加入的条款。比如:

    SELECT 
      t1.field1, 
      t1.field2, 
      t2.field1, 
      t3.field1 
    FROM table1 t1
    INNER JOIN table2 t2 on t1.ID = t2.ID
    LEFT JOIN table3 t3 ON t3.field1 = t2.field1 
    

    注意,内部连接可能需要是左连接,您的问题不清楚。

        2
  •  3
  •   Quassnoi    15 年前

    你错过了一个 JOIN 条件介于 table1 table2 :

    SELECT  table1.field1,
            table1.field2,
            table2.field1,
            table3.field1
    FROM    table1
    LEFT JOIN
            table2
    ON      table2.id = table1.id
    LEFT JOIN
            table3
    ON      table3.field1 = table2.field1