0

考虑下表:

爸爸桌

daddy_id | daddy_name
       1 | daddyA
       2 | daddyB

子表

child_id | child_name | daddy_id
       1 | childA     | 1
       2 | childB     | 1
       3 | childC     | 1
       4 | childD     | 2

出于特殊原因,我需要一些返回结果集的查询,如下所示:

结果集 1

daddy_id | daddy_name | child_id1 | child_id2 | child_id3 |
       1 | daddyA     | childA    | childB    | childC    |

结果集 2

daddy_id | daddy_name | child_id1
       2 | daddyB     | childD

我的问题是,我应该继续努力实现这一目标吗?仅使用 C# 和 Sqlite 就可以实现这一点吗?

注意:我正在使用 .NET 框架 4.0 的通用数据读取器,但需要一些与 sqlite3 一起使用的查询。

4

2 回答 2

1

您可以尝试以下查询:

SELECT daddy_id,
       daddy_name,
       (SELECT group_concat(child_name)
        FROM children
        WHERE children.daddy_id = dads.daddy_id
       ) AS children
FROM dads

这会给你这样的结果:

daddy_id | daddy_name | children
       1 | daddyA     | childA,childC,childB
       2 | daddyB     | childD
于 2013-02-13T15:11:14.777 回答
0

我猜“非凡”的原因是将结果数据绑定到某个 UI 组件?让查询返回可变数量的列确实不是您想要做的事情,我怀疑它甚至是可能的,更不用说可维护了。

在这种情况下,为什么不执行查询并获取具有固定列数的数据读取器并将数据读取器处理到另一个可以用作数据绑定源的集合中。

于 2013-02-13T13:44:28.837 回答