select a.rjid from RPT_CATEGORY_SCHOOL as a
where a.nd=(select res from xt_cssz where rjid=a.rjid and mc='nd' and lx='Init')
group by rjid
在子查询中 有个 rjid=a.rjid 我不太明白 这个a.rjid 是取的a表的 哪一行 作为条件
一般情况 都是将 条件设置为变量 比如
select a.rjid from RPT_CATEGORY_SCHOOL as a where a.nd=2011 group by rjid
求高手解释下
这个相关子查询,相当于 RPT_CATEGORY_SCHOOL 中 rjid 的每一个数值都要和 xt_cssz 表中的 rjid 进行一次匹配。
只要符合res.rjid=RPT_CATEGORY_SCHOOL.rjid都会及进行匹配,比如:
RPT_CATEGORY_SCHOOL res
rjid rjid
1 1
2 1
3 1
左边的rjid 1,2,3 都分别会跟右边的rjid 1,1,1进行匹配..这样匹配次数就为3*3
SELECT * FROM #tb1 a WHERE a.id IN
( SELECT TOP 2 ID FROM #tb1 WHERE type=a.type ORDER BY Click DESC)
请问这条SQL是怎么进行匹配的。执行机制是什么