首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL父/子递归调用还是联合?

问SQL父/子递归调用还是联合?
EN

Stack Overflow用户
提问于 2009-01-26 02:00:55
回答 3查看 17.3K关注 0票数 5

我似乎找不到一个相关的例子。

我正在尝试返回表的一个子集,对于该表中的每一行,我希望检查它有多少子元素,并将该数字作为结果集的一部分返回。

父表的列: PK_ID、Column1、Column2、FK1

对于结果集中的每个计数,从child_table中选择FK1 (*)。

最终结果集

3,col1text,col2text,1(子项)

5,col1texta,col2texta,2(子项)

6,col1textb,col2textb,0(子项)

9,col1textc,col2textc,4(子项)

我正在努力寻找在另一个查询中引用结果集中的列,然后再将它们连接在一起的最佳方法。使用T-sql

EN

回答 3

Stack Overflow用户

发布于 2009-01-26 02:06:23

我相信这就是你想要做的:

代码语言:javascript
复制
SELECT P.PK_ID, P.Column1, P.Column2, COUNT(C.PK_ID)
FROM
    Parent P
    LEFT JOIN Child C ON C.PK_ID = P.FK1
GROUP BY
    P.PK_ID, P.Column1, P.Column2
票数 4
EN

Stack Overflow用户

发布于 2010-09-03 13:50:03

你有没有尝试过为MySQL的父id添加一个索引。我非常确定执行时间会有很大改善。我还没有测试过,但我想说MySQL会遍历所有行来确定计数。这意味着它在这59秒内执行了100-400亿(表中的行数* 10000)的查找。

假设SQL Server和Oracle动态创建了一个索引。如果他们这样做了,那就只有100万到400万。

票数 1
EN

Stack Overflow用户

发布于 2010-02-02 14:17:25

您的查询都假定输入父子节点的顺序是连续的。如果在末尾输入来自第一个节点之一的子节点,并且其ID或PK较高,则查询不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/478671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档