尝试返回父记录的子记录的所有列

2024-01-01

我正在寻找一种解决方案,通过该解决方案可以获得父记录的所有子记录。我找到了一个满足我的需求的解决方案,如下所示 https://stackoverflow.com/a/28366310/726802

唯一的问题是上述解决方案是连接 ID。

当前结果集

它是 ID 列的逗号分隔值 = 2,3,4

预期输出

ID    Name    ParentID
1      1st       null
2      2nd       1
3      3rd       1
4      4th       2

我尝试了下面的代码。

SELECT @pv:=
(SELECT * FROM tblreport WHERE ParentID IN (@pv)) AS lv FROM tblreport
JOIN
(SELECT @pv:=2)tmp
WHERE ParentID IN (@pv)

并收到一条错误消息:操作数应包含 1 列

我的示例 SQL Fiddle http://sqlfiddle.com/#!9/a0f6c/3


现在,它们以逗号分隔。但是,我期望返回特定行的所有列。

你可以使用CSVids 结果如下:

SELECT *
FROM tblreport
WHERE FIND_IN_SET(ID,(SELECT GROUP_CONCAT(lv SEPARATOR ',') FROM (
                     SELECT @pv:=(SELECT GROUP_CONCAT(ID SEPARATOR ',') 
                     FROM tblreport WHERE ParentID IN (@pv)) AS lv FROM tblreport
                     JOIN (SELECT @pv:=1)tmp
                       WHERE ParentID IN (@pv)) a));

Output:

ID  Name    ParentID
2   2nd     1
3   3rd     1
4   4th     2

EDIT:

如果您还需要原始行,您可以使用UNION ALL:

SET @var = 1;

SELECT *
FROM tblreport
WHERE FIND_IN_SET(ID,(SELECT GROUP_CONCAT(lv SEPARATOR ',') FROM (
                     SELECT @pv:=(SELECT GROUP_CONCAT(ID SEPARATOR ',') 
                     FROM tblreport WHERE ParentID IN (@pv)) AS lv FROM tblreport
                     JOIN (SELECT @pv:=@var)tmp
                       WHERE ParentID IN (@pv)) a))

UNION ALL
SELECT *
FROM tblReport
WHERE ID = @var
ORDER BY ID;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试返回父记录的子记录的所有列 的相关文章

随机推荐

  • 使用网络服务发现在 Java 服务器和 Android 客户端之间进行通信

    我正在构建一个 Java 服务器应用程序 在 PC 上运行 它使用以下命令将自身注册到本地网络JmDNS http jmdns sourceforge net 以及一个 Android 客户端应用程序 该应用程序应该使用以下命令发现 jav
  • 如何使用任务有条件地异步运行代码

    我有一个负责检索资源的类 该类还缓存它们以便快速访问 该类公开了用于检索资源的异步方法 public Task GetResourceAsync string resourceName return Task Factory StartNe
  • 标头部分中的 ransack 搜索表单:未向 search_form_for 提供 Ransack::Search 对象

    首先 我是 RoR 新手 所以答案可能是显而易见的 在这种情况下我深表歉意 我环顾四周 没有发现任何有帮助的东西 我试图在我的应用程序的每个网页的标题上都有一个搜索表单 它将搜索我所有 存储桶 的名称 这是相关代码 在 app views
  • Rails 身份验证令牌和 Ajax

    好吧 根据我在其他网站和堆栈溢出上读到的内容 Rails 会抛出此身份验证令牌错误 因为我的表单未传递令牌 这是一项安全功能 这我明白了 但我确实没有表格 我这里有 ajax 我的 javascript 将 id ed 信息发布到处理函数中
  • 如何在 Diesel 中针对 Postgres 数据库执行带有子查询的删除?

    我在 Postgres 数据库中有以下架构 Table A ID Name Table B ID FOREIGN KEY A ID 我正在尝试在 Diesel 中编写以下查询 DELETE FROM B WHERE B ID in SELE
  • 如何使用 iBatis 将数组写入 Oracle 10g XE 数据库?

    我一直在寻找这个高低的答案 但找不到答案 基本上我有一个对象正在使用 iBatis 写入我的数据库 这适用于字符串 整数等基本类型 但我的对象的属性之一是其他对象的数组 我希望能够保留这一点 然后调用 selectById 语句并检索包括数
  • 当我通过 socket.io 操作会话时,如何避免 node.js 中的竞争条件?

    我在我的 socket io 设置中使用这个授权函数 io set authorization function data accept if data headers cookie return accept Session cookie
  • UItextField 委托不工作

    在我的 iPad 应用程序中 我有两个文本字段 一个显示正常的默认文本字段 另一个应显示选择器作为其输入视图 问题是 一旦我使用txt1显示默认键盘 然后当我触摸第二个文本字段时txt1键盘保持可见 我也写过 txt1 resignFirs
  • 如何获取RSpec当前的上下文名称?

    如果我有这样的 rspec describe Foo do init go here describe Sub Foo do it should Bar do test go here puts lt need Foo Sub Foo sh
  • 从工具栏提交 SAS 代码或宏

    是否可以将 SAS 脚本或宏分配给 Base SAS 中的工具栏按钮 即 您可以 dm 宏或 sas 脚本吗 当然 这是一种方法 转到工具 gt 自定义 选择自定义选项卡 单击 添加工具 最左边的按钮 命令 一词的正上方 创建一个新的空白按
  • ASP.NET - 条件 Web.config

    我是 ASP 新手 想知道它是否有条件 编译 我知道它没有编译 我的意思是 我的应用程序交付给不同的用户 每个都有自己的条件应用程序编译 现在我需要有条件地更改 Web config 有没有办法使用条件编译符号 EOG 如果 Daniel
  • 在 C++ 中传递具有多个条目的结构

    我试图传递一个坐标 它被定义为具有 2 个整数参数的结构 该结构称为 coord 如下所示 UpdateB 0 0 其中输入参数的类型为 coord 即在上面的语句中我试图传递一个坐标0 0 UpdateB是某种功能 我收到错误 有什么想法
  • 在 Rcpp 中按列对数据框排序

    有没有简单的方法可以通过 RCpp 中的两列 或多列或一列 对 DataFrame 进行排序 网上有很多排序算法 或者我可以使用std sort带有 DataFrame 的包装器 但我想知道 RCpp 或 RCppArmadillo 中是否
  • jQuery click() 没有点击?

    我以为 jQuery 的click 可以让我们添加一个处理程序或仅单击一个元素吗 但是 我尝试过 function setTimeout function a first trigger click or click the same 30
  • 分配空列表

    我真的不知道我是如何偶然发现这个的 我也不知道该怎么想 但显然 是 python 中的合法操作 所以也是 but 不允许 虽然似乎没有任何效果 但我想知道 到底是什么 这和Python的多重赋值 序列拆包 有关 a b c 1 2 3 工作
  • 'FBSession:未提供 AppID

    我刚刚使用新的 iOS 版 Facebook 3 0 SDK 更新了我的应用程序 在此之前 我使用的是利用 FBSessionDelegate 和 FBRequestDelegate 的 SDK 在该 SDK 中 我们必须将此代码放置在 a
  • 应用程序不会从命令行完整路径启动,但会在 CD 到目录后启动

    我正在尝试从注册表运行 Net C 应用程序Run键 在HKEY LOCAL MACHINE SOFTWARE Microsoft Windows CurrentVersion Run 其他字符串值存在并启动一切都很好 但由于某种莫名其妙的
  • 我将华氏温度转换为摄氏度的代码有什么问题?

    Programme to covert Farenheight to Celcius F input Enter Value F F 32 9 5 print The temperature is F Degrees Celcius 当我尝
  • 在 Swift 中使用 NSDate 进行 NSSortDescriptor 排序

    我如何使用托管对象的日期属性对 NSFetchRequest 进行排序 这样它就创建了一个按日期顺序排列的数组 到目前为止 这是我的代码 var request NSFetchRequest NSFetchRequest entityNam
  • 尝试返回父记录的子记录的所有列

    我正在寻找一种解决方案 通过该解决方案可以获得父记录的所有子记录 我找到了一个满足我的需求的解决方案 如下所示 https stackoverflow com a 28366310 726802 唯一的问题是上述解决方案是连接 ID 当前结