从另一个查询的结果查询第二个mysql表

时间:2012-12-18 15:39:59

标签: mysql select nested-queries

我有两个mysql表:a。 myTable1和b。 myTable2

首先,我需要查询第一个表(myTable1)以获取'custid'和'age',然后查询第二个表(myTable2)以获取与中间结果中的任何记录匹配的所有记录。

首先查询,结果如下所示:

选择不同的custid,年龄来自mtyTable1,其中itemid in(2762,2763)

custid      age
"8897953"   53.1839
"1433515"   49.5507
"7638023"   59.4099
"2310899"   46.8374
"6736604"   47.3001

现在,如何编写一个有效的嵌套查询来搜索“myTable2”以查找所有记录?

2 个答案:

答案 0 :(得分:2)

JOIN两个表:

SELECT t1.*
FROM yourTable2 t1
INNER JOIN
(
    select distinct custid,age 
    from mtyTable1 where itemid in ( 2762 , 2763)
) t2 ON t1.custid = t2.custid AND t1.age = t2.age

SELECT t1.*
FROM yourTable2 t1
INNER JOIN yourTable1 t2 ON t1.custid = t2.custid AND t1.age = t2.age
WHERE t2.itemid in ( 2762 , 2763)

答案 1 :(得分:1)

尝试:

SELECT DISTINCT t2.*
FROM mtyTable1 t1 INNER JOIN Table2 t2 ON t1.custid=t2.custid AND t1.age=t2.age
WHERE t1.itemid IN ( 2762 , 2763)