【发布时间】:2013-03-21 04:40:10
【问题描述】:
我有 3 个表、2 个索引表和 1 个数据表
tables的结构是这样的:
users:
id | name
--------+-----------
1 | John
2 | Mike
3 | James
idx 和idx2:
user_id | user_id2 | action | date
---------+----------+----------+----------
1 | 2 | message | 2013-03-20
1 | 3 | message | 2013-03-21
3 | 2 | chat | 2013-03-21
之前我只有 2 个表,1 个索引表(名为 'idx')和 1 个数据表(名为 'users'),所以查询是这样的:
SELECT * FROM idx inner join users WHERE idx.user_id='2' and idx.user_id2=users.id ORDER BY idx.date DESC
但是现在添加了一个新的索引表(名为“idx2”),结构类似于“idx”(我不能将“idx”和“idx2”组合成一个表,所以我们需要使用一次 3 张桌子)
所以现在我无法使用 3 个表进行查询
我试图做这样的事情:
SELECT * FROM idx,idx2 inner join users WHERE (idx.user_id='2' and idx.user_id2=users.id) or (idx2.user_id='2' and idx2.user_id2=users.id) ORDER BY idx.date DESC
但这不起作用,我猜查询应该包含union 和join...
有什么想法吗?
谢谢!
【问题讨论】:
标签: mysql join union multiple-tables