日期:2014-05-16  浏览次数:20681 次

mysql多表查询的问题
有三张表:
User(id,name......)
T1(id,name,.....,user_id)
T2(id,user_id1,user_id2) 这是user自身多对多的中间表,我也给建立了实体类。

//现在我要查询T1,条件是T1.user_id=T2.user_id2;

我要通过T2.user_id1,找出它在T2表中对应的user_id2,然后再去找T1中符合T1.user_id=T2.user_id2条件的记录。我不想发多次查询,因为我要排列。请问要怎么弄?

T2是个多对多的表,所以可能根据T2.user_id1返回的user_id2会有多个。。

不知道我表达的清不清楚。。。求指导。。

------解决方案--------------------
SQL code

select id, name, user_id
from T1 c
where exists(select 1 from T1 a, T2 b where a.user_id = b.user_id1 and a.user_id = 1 and b.user_id2 = c.user_id)
order by `时间字段`

------解决方案--------------------
探讨
引用:

看不懂你到底要什么

User
id name
1 a
2 b
3 c

T1
id name user_id
1 a 1
2 b 2
3 c 3

T2
user_id1 user_id2
1 2
1 3
2 1


你到底……


其实就是页面传来数据user_id1=1;
要的结果是:
T1
id name ……