求SQL查询语句

LoveInSnowing LoveInSnowing 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
数据库为access

表A
id pid text
1 0 A1
2 0 A2
3 1 A3
4 1 A4
5 2 A5
6 3 A6
7 2 A7

其中A表中的id为自动编号,pid为数字。pid的意思是父编号,0代表无父项,其余代表其父项的id为该值。
可用以下图示表示:
+----- A1 (id = 1, pid = 0)
|---- A3 (id = 3, pid = 1)
|--- A6 (id = 6, pid = 3)
|---- A4 (id = 4, pid = 1)
+----- A2 (id = 2, pid = 0)
|---- A5 (id = 5, pid = 2)
|---- A7 (id = 7, pid = 2)

表B
id cid clid
1 1 200803150001
2 2 200803150001
3 1 200803150002
4 1 200803150003
5 2 200803150003
6 3 200803150004
7 3 200803150005
8 2 200803150005
9 1 200803150005
10 4 200803150006
11 5 200803150006
12 4 200803150007
13 3 200803150007
14 6 200803150008
15 5 200803150008
16 5 200803150009
17 7 200803150009

其中表B中的id为自动编号,cid为数字,其值与表A中的id相对应

现求如下要求的SQL语句,
1.根据表A中pid的值不同获得其下所有子项,如:
当pid = 1时,取得表B中cid = 3、6、4的记录,且clid不重复
当pid = 2时,取得表B中cid = 5、7的记录,且clid不重复
当pid = 3时,取得表B中cid = 6的记录,且clid不重复
2.根据表A中pid的值不同,获得其下一层子项,如:
当pid = 1时,取得表B中cid = 3、4的记录,且clid不重复
当pid = 2时,取得表B中cid = 5、7的记录,且clid不重复
当pid = 3时,取得表B中cid = 6的记录,且clid不重复
...全文

相关推荐

评论 11
收藏 已收藏
分享
返回顶部
LoveInSnowing
MS-SQL Server 34,876 成员 254,635 内容