从2个表中选择在一个单一的查询
问题描述:
我有我查询在所述第二域值43的表和我返回第三字段的值从2个表中选择在一个单一的查询
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?
答
select * from table2
where t2_id in (select t1_field3 from table1 where t1_field2=43)
答
您正在描述一个JOIN。在这种情况下,你不需要明确使用JOIN关键字虽然,你可以这样做:
SELECT table1.t1_field3, table2.* FROM table1, table2 WHERE table1.t1_field2=43 AND table2.t2_id = table1.t1_field3
或许,这将有助于了解不同类型的在某些时候加入;编码恐怖拥有good post它
答
有表达直接加入,以及像这样的方式:
select table1.t1_field3, table2.*
from table1
join table2 on table1.t1_field3 = table2.t2_id
where table1.t1_field2 = 43;