当前位置:Gxlcms > 数据库问题 > SQL 查询CET使用领悟

SQL 查询CET使用领悟

时间:2021-07-01 10:21:17 帮助过:8人阅读

etcRecommandINfo2(c_PRecommendNo,c_RecommendName,c_RecommendNo,i_Rtype,c_ServerDir,c_Pic_Recommend,tLevel) as ( select c_PRecommendNo,c_RecommendName,c_RecommendNo,i_Rtype,c_ServerDir,c_Pic_Recommend,0 AS tLevel from Recommend where c_RecommendNo=RC20150514142804 union all select rd.c_PRecommendNo,rd.c_RecommendName,rd.c_RecommendNo,rd.i_Rtype,rd.c_ServerDir,rd.c_Pic_Recommend,et.tLevel+1 from Recommend rd inner join etcRecommandINfo2 et on et.c_PRecommendNo=rd.c_RecommendNo ) select c_PRecommendNo,c_RecommendName,c_RecommendNo,i_Rtype,c_ServerDir,c_Pic_Recommend,tLevel from etcRecommandINfo2;

看完这段代码,你也许醉了,其实这段代码,主要就是用到了CET,先说说这个用到查询的这个表:

c_RecommendNo
标识表中唯一
c_PRecommendNo
标识该条数据的上一条数据

这是主要的2个字段,这两个字段是递归的根源。

这个语句可以按3步来理解,如下图:

1、查询基础数据;

2、基础数据关联条件,查询全部数据;

3、将查询的数据,通过with归类显示处理;

*************************************************************

技术分享

**************************************************************

备注:语句2中on后面语句也很关键,=左右的顺序不能互换,互换之后,查询的结果也不相同;记得理解的顺序很关键,理解了顺序,就能查询自己想要的结果;

CET的详细内容可以参考链接:

http://www.cnblogs.com/kissdodog/archive/2013/06/24/3153012.html

 

SQL 查询CET使用领悟

标签:

人气教程排行