【问题标题】:making a sentence recursive in sql在sql中使句子递归
【发布时间】:2023-04-01 21:52:01
【问题描述】:

我有一张桌子:

id owner   ex_id
1  jack    -
2  joe     -
3  charlie 1
4  bill    3
5  helen   2
6  jack    5
7  anna    4
8  Kurt    7

可以在选择语句(不是程序,只是 sql)中包含类似“从 id 7 获取所有 ex_id´s”的内容:

id 7: anna, bill, charlie, jack 

(7点到4,4点到3,3点到1,1没有属性所以结束)

TIA

【问题讨论】:

  • 没有。 MaySQL 没有这方面的功能。然而,这个问题已经被问过很多次了。也许您可以搜索这些答案以获取有关如何解决此问题的建议。
  • MySQL 不够先进,无法进行递归查询,您需要在程序(或存储过程)中执行此操作
  • mysql recursive self join的可能重复
  • 顺便说一句。我听说过“查询”、“陈述”和“命令”,但在这种情况下从未听说过“句子”。
  • 您不能使用 MySQL 的 select 功能来做到这一点,但是对于在 Postgres 中不如 Oracle 的 CONNECT BY 或 WITH RECURSIVE 优雅的解决方案,您可能想阅读 Erick Ringot 对 @ 的评论987654322@ 关于递归,因为他似乎提出了一种存储过程方法,您可能会或可能不会发现比仅在应用程序层中执行它更可取,如果 MySQL 是您决定的固定元素,我的建议是后者.存储过程不是很流行是有原因的。

标签: mysql sql join recursion


【解决方案1】:

很抱歉,在 MySQL 中使用纯 SQL 无法执行这样的分层查询。

甲骨文可以做到。 http://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm但这不是你问的。

【讨论】:

  • 现在几乎所有其他 DBMS 都可以做到这一点,不仅仅是 Oracle。现在连 SQLite 都可以做到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多