【发布时间】:2017-06-20 05:12:23
【问题描述】:
我有一个不同类型的项目列表及其各自的 ID。项目将按组 ID 分组:
Type | ID | GroupID
-----------------------
Type1 | 1234 | 1
Type1 | 2345 | 1
Type2 | 1234 | 1
Type3 | 1234 | 1
Type1 | 1234 | 2
每种类型都有单独的表格。这些模式彼此完全无关,因此UNION 不是一种选择:
Type1 <id, name, status>
Type2 <id, name, description, foo, bar>
Type3 <id, name, foobar, barfoo, foofoo, hoodeedoo>
有没有办法将所有数据加入到一个列表中。随着时间的推移,我们将添加更多类型,并且将按组加载列表。查询 Group 1 的上述数据集将返回以下 [pseudo] 数据:
[
{ 1234, name, status }, // Type 1
{ 2345, name, status }, // Type 1
{ 1234, name, description, foo, bar }, // Type 2
{ 1234, name, foobar, barfoo, foofoo, hoodeedoo } // Type 3
]
(更新)此请求的目的:
我们的 UI 将显示此项目列表。我们将有条件逻辑来改变点击项目的行为。例如,如果单击 Type1 项目,则运行 Type1 的行为 - 其他类型以此类推。
【问题讨论】:
-
您能解释一下您要解决的问题吗?我可以考虑返回字符串或 XML 值,但这实际上取决于您将如何使用数据,以及为什么要将非同质列表放在一个响应中。
-
你可以使用 JSON 作为返回类型吗?
-
我更新了问题以描述我们为什么需要这样的数据。这并不理想,我知道。可能不得不回到绘图板上。
-
@joanolo - 这是最后的解决方案,看起来可能是我们唯一的选择。我主要是想看看是否有一些我不知道的 SQL 特性。
标签: sql postgresql join union