【发布时间】:2012-10-08 16:28:07
【问题描述】:
我想做“链接”
例如,我有 5 个帖子(id:“1”,id:“2”,id:“3”,id:“4”,id:“5”)
它们有一个序列
{id:"1", nextId:"2"},
{id:"2", nextId:"4"},
{id:"3", nextId:"0"},
{id:"4", nextId:"3"},
{id:"5", nextId:"0"},
当我从“1”搜索时,我得到了一个结果:{id:"1"}, {id:"2"}, {id:"4"}, {id:"3"} 当我从“5”搜索时,我得到了一个结果:{id:"5"}
如何在 ANSI SQL 中找到 All start with {id:"1"}?
select s.id, s.nextId from sample s
join sample ns on ns.id = s.nextId
它从第一个节点到所有节点。
我想启动“{some id}”并且我想使用“limit 10”
帮帮我!
【问题讨论】:
-
如果使用 Oracle,您有 CONNECT BY 和 START WITH 子句,但它们不是 ANSI SQL
-
现在我使用的是 HSQLDB,但是当我完成示例时,我可能不得不使用 MySQL!
-
HSQLDB 文档中有一个很好的例子hsqldb.org/doc/2.0/guide/dataaccess-chapt.html#dac_with_clause
-
如果您可能不得不使用 MySQL,那么您将不得不寻找其他方式 - 其中 mysql 不支持的是
WITH子句。我会推荐一个合适的数据库:)