求一SQL查询语句

猿敲月下码 2012-06-13 01:35:15
有一张菜单表(menu),字段:menuId,parentId

SELECT * FROM menu t WHERE t.menuId = 3


这样查出来个子节点,怎样才能把它的父节点一并查出来

我现在的做法是:

SELECT * FROM menu t WHERE t.menuId = 3
OR ( t.menuId IN(SELECT m.parentId FROM menu m WHERE m.menuId = 3) )


不知道还有没其它好的方法
...全文
107 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
猿敲月下码 2012-06-13
  • 打赏
  • 举报
回复
就是一张菜单表(menu),字段:menuId(主键自增),parentId
里面有两条记录
menuId parentId
1 0
3 1


其中第一条记录是父节点,子节点就是第二条了

我查出了子节点,怎样把它的父节点一起查出来




猿敲月下码 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

SQL code
;with cte as(
SELECT * FROM menu WHERE menuId = 3
union all
SELECT A.* FROM menu a,cte b where a.menuId=b.parentId
)
select * from cte
[/Quote]

忘记说了,我用的是MYSQL,这个先去试下
zhousq00 2012-06-13
  • 打赏
  • 举报
回复
没明白,求解!
牛哥_ 2012-06-13
  • 打赏
  • 举报
回复
没看懂你的什么意思,贴出表来看看
百年树人 2012-06-13
  • 打赏
  • 举报
回复
;with cte as(
SELECT * FROM menu WHERE menuId = 3
union all
SELECT A.* FROM menu a,cte b where a.menuId=b.parentId
)
select * from cte

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧