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尽管如此!非常感谢。