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

Mysql 从多个表中选择数据并使用左联接?,mysql,join,Mysql,Join,我有一个不起作用的查询,它让我发疯。基本上这就是我想要实现的目标: SELECT table1.field1, table1.field2, table2.field1, table3.field1 FROM table1, table2 LEFT JOIN table3 ON table3.field1 = table2.field1 但由于某种原因,我无法执行此查询。我相信这是因为在告诉从多个表中进行选择之后执行了连接。因为当我从1个表中选择时,这个查询可以工作

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

SELECT
  table1.field1,
  table1.field2,
  table2.field1,
  table3.field1
FROM
  table1,
  table2
LEFT JOIN
  table3
ON table3.field1 = table2.field1
但由于某种原因,我无法执行此查询。我相信这是因为在告诉从多个表中进行选择之后执行了连接。因为当我从1个表中选择时,这个查询可以工作


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

您可能需要一个联接和
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 

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

您可能需要一个联接,并且在第一个联接中使用
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 

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

您缺少
表1
表2
之间的
联接条件:

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

您在
table1
table2
之间缺少一个
JOIN
条件:

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和表2之间是否有任何关系?请您发布一些关于
table1
table2
table3
和查询所需输出的示例数据?您所说的“无法执行此查询”是什么意思?这会给你一个错误吗?语法看起来正确,问题解决了,谢谢你的帮助+1。表1和表2之间是否有任何关系?请发布一些关于
table1
table2
table3
和查询所需输出的示例数据?您所说的“无法执行此查询”是什么意思?这会给你一个错误吗?语法看起来正确,问题解决了,谢谢你的帮助+这确实是个问题,只是我不知道我可以从多个表中进行选择,并在表之间使用联接。再次感谢+1并接受。这确实是问题所在,只是我不知道我可以从多个表中选择并在表之间使用联接。再次感谢+1并被接受。你是对的,但我只能接受1个被接受的答案+1尽管如此!谢谢。你说得对,但我只能接受一个被接受的答案+1尽管如此!非常感谢。