【发布时间】:2016-11-16 01:41:10
【问题描述】:
我需要连接 5 个表以获取必要的数据。
表 1
id | number
1 | 1
2 | 5
表 2
id | number | user_id
1 | 1 | 9
2 | 5 | 8
表 3
id | name |
8 | john |
9 | jane |
表 4
id | email
6 | johndoe@example.com
表 5
id | table4_id | table3_id
1 | 6 | 8
表 1 是我的主表,我想将表 3 和表 4 中的姓名和电子邮件分别添加到表 1 的选择查询中,但为此,我需要使用表 2 和表 5 进行连接它们因为表 1 和表 3 和 4 之间没有直接关系。我只知道如何加入 3 个表而不是 5 个表,我似乎对如何进行此操作感到困惑。
我点击链接here加入表1,2和3。但我不知道如何继续表4和5。
这是我尝试过的查询:
SELECT table1.number, table2.number, table2.user_id, table3.id, table3.name,
table4.id, table4.email, table5.table4_id, table3_id
FROM table1
LEFT JOIN table2
INNER JOIN table3
//this query will work if I don't include this 2 inner joins
INNER JOIN table4
INNER JOIN table5
ON table3.id = table5.table3_id
ON table5.table4_id = table4.id
//
ON table2.user_id= table3.id
ON table2.number = table1.number;
错误:(如果包括表 4 和 5 的内连接)
错误代码:1064。您的 SQL 语法有错误;检查 与您的 MySQL 服务器版本相对应的手册 'ON table2.user_id= table3.id
附近使用的语法
【问题讨论】:
-
添加你尝试过的查询
-
通常一个一个
-
@Jens 添加了我尝试过的查询
-
@RiggsFolly 添加了查询
-
语法是
JOIN tablename ON someid=someid把你的 ON 子句和相关的 JOIN 放在一起,你可能就完成了