SQL返回基于间接条件的结果

时间:2013-10-04 03:38:01

标签: sql

我对sql很新,所以我希望这个解释有意义。

我想退回销售骄傲。给定ID2

时,根据ID3查找所有ID1

我的表看起来像这样 表1表2

ID1 Sales       ID1 ID2 ID3
A   10          A   0   #
B   20          B   1   #
C   30          C   2   #
D   40          D   3   *
E   50          E   4   $
F   60          F   5   $
G   70          G   6   #
H   80          H   7   %
I   90          I   8   %

寻找ID2 = 0时的结果

结果ID2 = 0

ID1 Sales
A   10
B   20
C   30
G   70


select ID1,Sales 

from table1 

where ID1 in (select ID1 from table2 where ID3 in ( select ID3 from table2 where ID2 = 0))

感谢大家的帮助。我设法通过使用以下内容得到了答案。非常感谢您的帮助,我学到了很多东西

2 个答案:

答案 0 :(得分:0)

所以你需要三条信息。

第一个是你要找的id3值?

答案是'#'。

然后,您希望获得具有该id3值的所有id1值。

最后,您要返回id1和sales的结果集。

select -- step 3
  table1.id1
 ,table1.sales
from
  table1 
inner join -- step 2
  table2 
on table1.id1 = table2.id1
inner join (
select
  id3
from
  table2
where
  id2 = 0 ) as subquery -- step 1
on table2.id3 = subquery.id3

答案 1 :(得分:0)

select ID1,Sales from table1 where ID1 in(select ID1 from table2 where ID3 in (select ID3 from table where ID2=0))