id pid name
001 1 蜀国
002 0 魏国
这是一张表 表名 tc
id pid name
003 1 赵云
004 1 关羽
005 1 张飞
006 1 马超
007 0 许褚
008 0 司马懿
009 0 张辽
010 0 徐晃
这是另一张表 表名 td
我要查询的结果是:
id name pid name
001 蜀国 001003 赵云
001 蜀国 001004 关羽
001 蜀国 001005 张飞
001 蜀国 001006 马超
002 魏国 002007 许褚
002 魏国 002008 司马懿
002 魏国 002009 张辽
002 魏国 002010 徐晃
Select * from (Select M.id, m.Name as MName, M.id+N.ID as pid, N.Name as NName from tc M inner join td N on M.pid=N.pid) order y pid
谢谢 请用 递归 在线等
@龙o魂: 递归啥,没看出来。
就是用 with 临时表 as(
select * from 表名
union all
select a.列1 ,a.列2 from 表名 a join 临时表 b on a.列=b.列
)
select * from 临时表
这种格式吧 我只会一张表递归
@龙o魂: 公司请你是要解决问题还是要制造问题的。
我的意思是简单的SQL可以解决问题了,你为啥一定要用CTE呢?
你真想递归,我的那个SQL结果就是一个表了,你当他是一个表会写吗?
@爱编程的大叔: 原来 我设计的数据有问题 这真的不能用递归