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

时间:2010-11-08 14:50:40

标签: mysql join

我有一个查询,它不起作用,它的目的是让我疯狂;)。基本上这就是我想要实现的目标:

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

但由于某种原因,我无法执行此查询。我相信这是因为在告诉从多个表中进行选择后才执行连接。因为当我从1个表中选择时,此查询有效。

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

2 个答案:

答案 0 :(得分:3)

JOINtable1之间缺少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

答案 1 :(得分:1)

您可能需要第一次加入的JOIN和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 

注意,INNER JOIN可能需要是LEFT JOIN,你的问题不清楚。