2 nidafg nidafg 于 2015.06.10 21:05 提问

mysql有没有递归查询?
  RT.有一张表,维护几个对象的删除关系。3个字段,objectA, type,objectB.表示ObjectA关联哪些ObjectB要删除。type表示删除类型,0代表级联删除,1代表断开关系。级联删除要继续查询,以ObjectB为条件查询它又关联哪些要删除。直到没有关联要级联删除的对象为止。断开关系不用继续查询。
        ObjectA        type          ObjectB
         obj1              0                  obj2
         obj1              0                  obj3
         obj1              1                  obj4    
         如上表,obj2和obj3要继续作为条件成为ObjectA来查询,直到type都是1为止。

1个回答

oyljerry
oyljerry   Ds   Rxr 2015.06.10 22:01

用存储过程等,用变量存放中间结果。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
MySql递归查询和Oracle递归查询
MySql的递归查询和 Oracle的递归查询
mysql两种递归查询效率比较
本文目的为对比mysql递归树两种查询方式效率。 工具/原料 1 --创建表 DROP TABLE IF EXISTS `t_areainfo`; CREATE TABLE `t_areainfo` (  `id` int(11) NOT '0' AUTO_INCREMENT,  
mysql做递归层次查询
下面是sql脚本,想要运行一下 把下边的粘贴复制下来,做一个treenodes.sq直接运行便是。。。  /*  Navicat MySQL Data Transfer    Source Server         : mysql_demo3  Source Server Version : 50521  Source Host           : localhost:33
递归查询菜单树,支持mysql,oracle
递归查询菜单树,支持mysql,oracle,含表结构,递归查询菜单,支持mysql,oracle,含表结构递归查询菜单。
mysql如何做递归查询!!
mysql的逆袭:如何做递归层次查询   最近在做一个从oracle数据库到mysql数据库的移植,遇到一个这样的问题        在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但shi,在MySQL的目前版本中还没有对应的函数!!!    换句话来说,想
mysql 递归查询sql语句的实现
今天写了个递归查询语句,实现树查询,只返回叶子节点,所有具备子节点的节点和根节点都不返回,sql是在oracle下写的,当然也可以在mysql下执行。先自己记录下来,以备今后不时之需!SELECTt.ITEM_NAME,t.ITEM_CID,t.ITEM_PIDFROM`tlk_案由表单` t WHERE NOT EXISTS(select * from `tlk_案由表单` t1,`tlk_案由表单` t2  where t1.ITEM_CID=t2.ITEM_PID AND t.ITEM_CID=t1.
mysql递归查询组织机构
目录结构:创建表并添加测试数据 创建表 添加数据 根据父id递归查询所有子节点 创建函数 根据函数查询 根据子id递归查询所有父节点 写sql语句 根据组织机构名称模糊查询所有父节点 创建函数 根据函数查询 父子查询: 根据父 id 查询下面所有子节点数据;子父查询: 根据子 id 查询上面所有父节点数据;
mybatis+mysql递归查询
前导:我们在开发过程中常用到递归查询,如菜单,一般我们都是用ztree实现菜单,但是数据查询时需要用到递归语句建表:create table menu{ menu_Id varchar(31), menu_name varchar(31), menu_level char(1), parent_Id varchar(31) } 建JavaBean package org.gtiles.c...
mysql 中的数据实现递归查询
一. 表结构 二. create procedure Pro_GetUnderOrge5(in idd varchar(36)) begin declare lev int; set lev=1; drop table if exists tmp1;     CREATE TABLE tmp1(vid VARCHAR(5),vname varchar(10),vpid var
mysql递归查询子节点
先创建一张测试表 DROP TABLE IF EXISTS `one`; CREATE TABLE `one` ( `id` int(11) NOT NULL, `pid` int(11) DEFAULT NULL, `name` varchar(50) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 插入测试数据 INSER