Tsql 将两张桌子连接在一起

Tsql 将两张桌子连接在一起,tsql,Tsql,我有一个select查询,它以以下方式返回两列。如果有助于解决问题,我可以将其放在临时表中或将其设置为CTE。问题将在后面列出 id (cnt) 28002 11 28010 14 28029 13 28037 7 28045 6 28053 3 28061 6 28070 5 28100 5 28118 10 29009 1 但是我现在想从另一个表中选择,它有以下定义 id sub_id numberOfObjects 所以样本数据可以是

我有一个
select
查询,它以以下方式返回两列。如果有助于解决问题,我可以将其放在临时表中或将其设置为CTE。问题将在后面列出

id     (cnt)
28002   11
28010   14
28029   13
28037   7
28045   6
28053   3
28061   6
28070   5
28100   5
28118   10
29009   1
但是我现在想从另一个表中选择,它有以下定义

id
sub_id
numberOfObjects
所以样本数据可以是

id      sub_id    numberofObjects
28002   203125        10
28002   203126        56
28002   203127        75
28002   203128        76
28002   203129        5
28002   203130        50
28061   203131        26
28061   203132        7
28061   203133        14
28061   203134        32
29009   105678        33
如您所见,一个
id
有许多
sub\u id

我的目标是: 对于第一个select语句中的每个id,我希望它与第二个select语句中的id匹配,并在numberOfObjects小于15的情况下提取所有子id

所以我的结果应该是

id      sub_id    numberofObjects
28002   203125        10

28002   203129        5

28061   203132        7
28061   203133        14
这个怎么样:

SELECT f.id
    , ot.sub_id
    , ot.numberofobjects
FROM 
      ( ...first query...) f
JOIN otherTable ot
  ON ot.id = f.id
WHERE ot.numberofobjects < 15
选择f.id
,ot.sub_id
,ot.numberofobjects
从…起
(…第一个查询…)f
加入其他表ot
在ot.id=f.id上
其中ot.numberofobjects<15
如果您希望主id出现,即使没有子id少于15

SELECT f.id
    , ot.sub_id
    , ot.numberofobjects
FROM 
      ( ...first query...) f
LEFT JOIN otherTable ot
  ON ot.id = f.id
  AND ot.numberofobjects < 15
选择f.id
,ot.sub_id
,ot.numberofobjects
从…起
(…第一个查询…)f
左连接其他表ot
在ot.id=f.id上
和ot.numberofobjects<15
是的,您可以使用CTE而不是内联视图