【发布时间】:2014-07-05 05:52:34
【问题描述】:
昨天花了几个小时后,我决定在这里发帖。我有一个只有几个表的数据库,我需要根据用户表的 idusers(用户 ID)加入 4 个表。
需要连接的四个表是:users、table1、table2和table3。
users
idusers, name, email, a, b, c, etc.
table1
custom_id1, a_id, users_idusers
table2
custom_id2, a_id, users_idusers, comment
table3
custom_id3, lang
它们之间的关系: - 用户注册并将数据存储到用户表中:我需要该表中的所有字段。 - 当他们采取行动时,它会存储在 table1 中(其中 users_idusers 是 users.idusers)。 - 一些操作(带注释)注册到 table2(users_idusers 是 users.idusers)。 - table1 和 table2 的 a_id 字段相同,并映射到 table3 的 custom_id3。
我需要什么: 我希望能够从用户表中获取从 table1 映射到其用户的所有操作,table3 用于 lang 和 table2(如果有注释,则获取该字段的文本或返回 null。)。
我的查询是什么样的:
SELECT table1.a_id, table1.users_idusers, users.*, table3.langkey
FROM table1
LEFT JOIN users ON (users.idusers = table1.users_idusers)
LEFT JOIN table3 ON (table1.a_id = table3.custom_id3);
上面的查询缺少需要加入 table2 的部分,这就是我卡住的地方。任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
你能发布你的表格的完整结构吗?
-
你不能像加入
table1到users一样加入table2吗? -
@PatrickQ 假设您的意思是 table3 而不是 table1。这就是我昨天一直在尝试为 table2 做的事情。出于某种原因,我的 15K 结果变成了 700K。所以不,通过另一个联接不起作用。