从单个查询中的2个表中进行选择

时间:2010-06-13 01:40:12

标签: php mysql

我有一个表,我在第二个字段中查询值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?

3 个答案:

答案 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;