首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 请教一个查询并分类的语句
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-28 23:55:20 楼主
    数据库内容

    id        id2        name
    1          0          主类1
    2          0          主类2
    3          0          主类3
    4          1          二类a
    5          2          二类b
    6          4          三类

    其中id=6的在id=4的下面,而id=4又在id=1,这样就要取出名称并排列一下

    主类1  ->  二类a  ->  三类

    怎样获取6在第三层下的数据?并能一次性用SQL将“主类1”、“二类a”、“三类”这三个数据依顺序取出呢?


    用一句SQL或是两句SQL都行。。。
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • XFliangwh
    • 等级:
    发表于:2008-01-29 09:44:371楼 得分:0
    SQL code
    select s.name AS sName, m.name AS mName, l.name AS lName from `table` s,`table` m,`table` l where s.Id2 = m.Id1 and m.Id2 = l.Id1;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • XFliangwh
    • 等级:
    发表于:2008-01-29 09:47:212楼 得分:0
    若只想要某一类,加多个条件l.Id1=你指定的那一主类的Id
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-29 17:43:133楼 得分:0
    得出的结果不对。。。。

    想得出以下的结果

    条件ID=1的时候,会得出以ID=1为值的以下分类名出来

    主类1
    二类a
    三类
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • XFliangwh
    • 等级:
    发表于:2008-01-29 18:07:364楼 得分:0
    那你上面又写得像打横列的。

    那就逐个取,用union连起来算了。
    SQL code
    select name from `table` where Id1=1 union select name from `table` where Id2=1 union select name from `table` a inner join `table` b on a.Id2=b.Id1 where b.Id2=1;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yifuzhiming
    • 等级:
    发表于:2008-01-30 14:28:535楼 得分:0
    要是加个roate字段就好多了,记录层次
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-31 22:34:426楼 得分:0
    roate字段???什么意思?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-31 22:37:357楼 得分:0
    4楼的测试有个错误提示:

    错误代码: 1052
    Column 'name' in field list is ambiguous
    (耗费 0 ms)

    明明有这个字段。。。。怎么会提示不明确??
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-01 09:54:508楼 得分:0
    一楼的就是可行的
    。。。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-01 06:02:429楼 得分:0
    该回复于2008-05-04 10:28:40被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-01 19:28:1610楼 得分:0
    该回复于2008-05-04 09:53:50被版主删除
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved