0 0

比较复杂sql查询语句问题15

t_category 表结构:category_id(integer) PK, category_en(varchar), parent_id(integer),rank(integer)
parent_id 是 category_id 的外键;rank 表示同一级 category 的一个排序比较,数字小的排前

要求按照层级关系,显示出所有数据成一个列表,层级深度不限
例如:
1、(1, bbb, null, 4)
2、(3, aaa, 1, 3)
3、(7, ccc, null, 2)
4、(8, ddd, 3, 2)
5、(10, eee, 7, 2)
6、(11, fff, 7, 1)
7、(14, ggg, 1, 1)
...

结果应该是:
1、(7, ccc, null, 2)
2、(11, fff, 7, 1)
3、(10, eee, 7, 2)
4、(1, bbb, null, 4)
5、(14, ggg, 1, 1)
6、(3, aaa, 1, 3)
7、(8, ddd, 3, 2)

如有需要,可以再添加字段。
问题补充:
搜索了下相关的问题,也就是 要实现树状结构
问题补充:
是 mysql 的问题
2009年8月03日 15:04

3个答案 按时间排序 按投票排序

0 0

若在存储过程中用,看下mysql的存储过程语法,转换下就行。mysql好像是没有for...loop,时间长不用了。

算法就是个递归调用,在程序中控制也是这样。递归效率不高,代码简单。

2009年8月04日 11:53
0 0

这个是mysql吧,貌似要实现个树形结构。

一条查询语句是搞不定的。有两个方法:在程序中逻辑控制、使用数据库的存储过程。

给你个Oracle的存储过程参考:

create or replace procedure p_in_order is
  procedure p_recursion(c_id in integer) is
  begin
   for d in (select category_id  from t_category where parent_id=c_id order by rank) loop

      dbms_output.put_line(d.category_id);
      p_recursion(d.category_id);
   end loop;
  end p_recursion;

begin
for c in (select * from t_category where parent_id is null order by rank) loop
  dbms_output.put_line(c.category_id);
  p_recursion(c.category_id);
end loop;

end p_in_order;

2009年8月03日 19:32
0 0

你这是什么意思呀?完全看不懂你要按照什么来分类。是你写的太复杂还是这个题目本身就这么复杂?

2009年8月03日 18:12

相关推荐

    SQLServer中复杂sql语句查询

    在SQL Server中,处理复杂SQL语句查询是数据库管理员和开发者的必备技能。这涉及到多个方面的知识,包括但不限于多表联接、索引优化、触发器应用和存储过程的编写。下面将对这些主题进行详细阐述。 首先,**多表...

    SQL查询语句生成器

    SQL语句通常分为SELECT(查询)、INSERT(插入)、UPDATE(更新)和DELETE(删除)四大类。 2. SQL查询语句生成器原理: 生成器通过用户友好的界面,让用户选择所需的操作(如查询、更新等),然后根据用户的输入...

    可视化sql查询语句生成器

    对于开发人员来说,尤其是需要频繁进行数据查询时,可以快速构建和测试SQL语句,节省了大量的时间。同时,它降低了错误率,因为大多数工具会自动检查语法和逻辑错误,确保生成的SQL语句是有效的。 另外,可视化界面...

    SQL查询语句大全SQL查询语

    以上只是SQL查询语句的一部分知识点,实际的“SQL查询语句大全”可能会包含更复杂的查询技术,如窗口函数、游标、自连接、并行查询优化等。学习和掌握SQL,能够帮助我们高效地管理和处理大量数据,是提升工作效率的...

    经典的SQL查询语句,将内容作为字段查询

    4. 图片和SQL语句:虽然SQL主要用于处理文本数据,但在实际应用中,我们可能需要与图像数据交互。这通常涉及到BLOB(Binary Large Object)类型的字段,用于存储非文本数据。查询这类数据时,可能需要用到`SELECT ...

    复杂SQL查询语句的使用

    本篇将深入探讨如何有效地使用复杂SQL查询语句,以提高数据处理效率。 1. **子查询** 子查询是在主查询中嵌套的查询,可以用来获取满足特定条件的数据。例如,你可以用子查询找到某个部门薪水最高的员工,然后在主...

    SQL查询语句精华~

    SQL查询语句是数据库操作的核心,它用于从数据库中提取所需的数据。本篇文章将深入探讨SQL查询语句的两个关键组成部分:简单查询和FROM子句。 简单查询主要涉及选择列表、FROM子句和WHERE子句。选择列表允许指定...

    SQL查询语句的练习

    存储过程是一组预编译的SQL语句,可以封装在一起并多次调用,提高代码复用性和安全性。触发器则在特定的数据库事件发生时自动执行,如INSERT、UPDATE或DELETE操作。 8. **事务管理** SQL支持事务,确保数据的一致...

    SQL查询语句大全(集合多个教程)

    7. **存储过程**:预编译的SQL语句集合,可以接受参数,执行多次,提高性能,并提供封装和安全性的优点。 8. **触发器**:当满足特定条件时自动执行的SQL代码,常用于实现复杂的业务规则或审计功能。 9. **视图**...

    sql语句万能生成器,sql语句,sql语句生成

    在IT行业中,编写SQL语句是一项必备技能,但手动编写和调试SQL语句可能会耗费大量时间和精力,尤其在处理复杂查询时。这就是"SQL语句万能生成器"的用途所在。 SQL语句生成器是一种软件工具,它能够帮助开发者自动...

    SQL查询语句大全集锦(超经典)

    为了使SQL语句更加清晰,通常会给表起别名。例如: ```sql SELECT username, b.cityid FROM usertable a, citytable b WHERE a.cityid = b.cityid; ``` 此外,`SELECT`语句不仅可以从表或视图中检索数据,还可以从...

    SQL复杂SQL语句

    根据给定的信息,我们可以分析并总结出以下关于“SQL复杂SQL语句”的知识点: ### SQL复杂查询概述 在SQL中,复杂查询通常涉及到多个表之间的连接、子查询、聚合函数等高级特性。这类查询能够帮助我们从数据集中...

    SQL 执行超长语句

    2. **数据清洗**:对于需要根据特定规则对数据进行清洗的应用场景,可能会使用到包含多个CASE WHEN语句的复杂SQL语句。 3. **报表生成**:生成复杂的报表时,往往需要从多个表中抽取数据并进行复杂的联接操作,从而...

    XML查询语句转换成SQL语句的实现.pdf

    XML 查询语句转换成 SQL 语句的实现 本文主要讨论将 XML 查询语句转换成 SQL 语句的实现。XML 已经成为 Internet 上数据交换的事实标准,特别是在 Web 数据挖掘技术中,对数据源的结构化需求导致人们对 XML 文档的...

    ACCESS数据库与SQL查询语句生成示例

    在ACCESS中,通过“模块”可以输入和执行SQL语句,实现更复杂的数据处理。这对于需要自动化或批量处理数据的场景尤其有用。 5. **示例应用**:例如,假设我们有一个名为"Employees"的表,包含"ID"、"Name"和"Salary...

    数据库SQL查询语句练习题.pdf

    本文档提供了一个教学数据库Education的查询练习题,涵盖了基本的查询语句和复杂的查询语句,旨在帮助读者熟悉SQL查询语言。 一、检索计算机系的全体学生的学号、姓名和性别 查询语句:SELECT Sno, Sname, Sex ...

    基于ALPHA语言的复杂查询SQL语句生成.pdf

    6. 教学实践与效果:提出的复杂查询SQL语句生成框架已经在实际教学中得到应用,并且取得了良好的教学效果。这一框架被证明对初学者掌握复杂查询构建是有帮助的。 详细知识点: 数据库领域中复杂查询的生成通常需要...

    SQL常用查询语句大全

    本资料"SQL常用查询语句大全"是一份非常适合初学者的教程,它涵盖了SQL语言的基本概念和常用操作。 首先,我们要理解SQL的四大基本操作:SELECT(选择)、INSERT(插入)、UPDATE(更新)和DELETE(删除)。这些...

    SQL高级查询语句实例

    在SQL的世界里,高级查询语句是数据挖掘和分析的核心工具。这些技术使得数据库管理员和开发者能够从海量数据中提取有价值的信息。本话题主要聚焦于内联查询、左外联查询以及嵌套查询,这些都是SQL高级查询的重要组成...

    sql2000 复杂查询语句使用

    sql复杂查询语句 介绍一些复杂的查询语句 是学习sql2000语句的好工具

Global site tag (gtag.js) - Google Analytics