我有一个表,我在第二个字段中查询值43,并返回第三个字段的值
SELECT t1_field3 FROM table1 WHERE t1_field2=43
this returns 19, 39,73
t1_id t1_field2 t1_field3
----- --------- ---------
1 43 19////
2 43 39////
3 43 73////
4 73 43
5 13 40
然后我分别查询第二个表以获取更多信息
SELECT * FROM table2 WHERE t2_id=t1_field3
t2_id t2_field2 t2_field3
----- --------- ---------
19 value19.2 value19.3
39 value39.2 value39.3
73 value73.2 value73.3
有没有办法在同一个查询中同时结合table1和table2?
答案 0 :(得分:2)
你正在描述一个JOIN。在这种情况下,您不需要显式使用JOIN关键字,但您可以这样做:
SELECT table1.t1_field3, table2.* FROM table1, table2 WHERE table1.t1_field2=43 AND table2.t2_id = table1.t1_field3
在某些时候了解不同类型的连接可能会有所帮助; Coding Horror关于它有一个good post
答案 1 :(得分:1)
select * from table2
where t2_id in (select t1_field3 from table1 where t1_field2=43 )
答案 2 :(得分:1)
有一种方法可以直接表达联接:
select table1.t1_field3, table2.*
from table1
join table2 on table1.t1_field3 = table2.t2_id
where table1.t1_field2 = 43;