考虑以下表格:
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
出于特殊原因,我需要一些返回结果集的查询:
daddy_id | daddy_name | child_id1 | child_id2 | child_id3 |
1 | daddyA | childA | childB | childC |
daddy_id | daddy_name | child_id1
2 | daddyB | childD
我的问题是,我应该继续努力实现这一目标吗?只使用C#和Sqlite可以实现这一点吗?
注意:我正在使用.NET Framework 4.0的通用data reader,但需要一些适用于sqlite3的查询。
答案 0 :(得分: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
答案 1 :(得分:0)
我猜测“非凡”的原因是将结果数据绑定到某个UI组件?获取查询以返回可变数量的列确实不是您想要做的事情,我怀疑它甚至是可能的,更不用说可维护了。
在这种情况下,为什么不执行查询并获取具有固定列数的数据读取器,并将数据读取器处理为另一个可用作数据绑定源的集合。