mysql - 如何在此查询中返回 'Father ID' ?

标签 mysql sqlfiddle

我试图返回我的表(MySQL)的父ID,这是返回:

ID  NOME         PARENT_ID
1   Project      (null)
2   Sub          1
3   Sub-Sub      2
4   Sub-Sub-Sub  3

我需要这个:

ID  NOME         PARENT_ID FATHER_ID
1   Project      (null)    (null)
2   Sub          1         1 
3   Sub-Sub      2         1
4   Sub-Sub-Sub  3         1

这是fiddle

最佳答案

我必须使用这样的函数(link SO PT-BR):

CREATE FUNCTION getRoot(idSearch INT)
RETURNS INT DETERMINISTIC
BEGIN
  SET @idParent = idSearch;
  WHILE (@idParent != 0) DO
    SET @idFound = @idParent;
    SET @idParent = (SELECT id_parent FROM arvore WHERE id = @idParent);
  END WHILE;
  RETURN @idFound;
END

<强> SQL Fiddle

<强> SQL Fiddle2

关于mysql - 如何在此查询中返回 'Father ID' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27320237/

相关文章:

sql - 如何对连续的行进行分组?

mysql - 在 SqlFiddle 上执行触发器存储过程。 mysql

php - 通过文件夹和 mysql url 使用 Php 和 mysql 显示图像时出错

mysql - Visual Studio 未运行 DELETE 命令行语句 MYSQL

mysql - 选择以 _timestamp 结尾且匹配 regxp 的 MySQL 表

php - 是否有一起工作的 phpFiddle 和 sqlFiddle?

mysql - Sqlfiddle 问题

mysql - 在MySQL中,如何使用基于另一个表的列值的名称来连接表?

mysql - where 子句不起作用 mysql

mysql - 仅当值不存在时返回行