gpt4 book ai didi

mysql - sql查询-如何连接/联合3个表(2个索引表和1个数据表)

转载 作者:行者123 更新时间:2023-11-29 13:57:55 24 4
gpt4 key购买 nike

我有3个表,2个索引表和1个数据表

表的结构是这样的:

用户:

id      | name
--------+-----------
1 | John
2 | Mike
3 | James

idxidx2:

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张 table )

所以现在我无法使用 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

但这不起作用,我猜查询应该包含 unionjoin...

有什么想法吗?

谢谢!

最佳答案

你的正确的 UNION 似乎是可行的方法,但表结构应该匹配,你能提供更多信息吗?也许使用 sqlfiddle

如果我很好地理解你的问题,这应该可以做到:

(SELECT * FROM idx inner join users WHERE idx.user_id='2' and idx.user_id2=users.id)
UNION
(SELECT * FROM idx2 inner join users WHERE idx2.user_id='2' and idx2.user_id2=users.id) ORDER BY date DESC;

查询返回两个表中的数据,并正确排序:查看此 example我做了

关于mysql - sql查询-如何连接/联合3个表(2个索引表和1个数据表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15539626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com