【发布时间】:2013-07-08 20:17:11
【问题描述】:
免责声明:我不确定如何正确命名这个问题,所以如果已经有人问过,我深表歉意。我发现的标题和内容相似的问题并没有解决我的问题。
我有两个表,问题和文本。问题和文本都共享一个 ID 列,作为问题的主键。 Text 使用 ID 和 Field 作为键列。
最终我想要一个 sql 查询来选择我想要的问题中的内容,然后根据 ID 从 Text 中选择正确的值。我一直在使用连接,但是当我想要多行时,我不知道如何让它工作。我想在输出中包含匹配 ID 的列 A 和 A 的 Text.Field 值,以及匹配 ID 的列 B 和 B 的 Text.Field 值。
我将如何实现这一目标?
我从 Netezza 环境中提取,所以 Pivot 不可用
谢谢
示例结构:
Issues Table:
|ID|Column1|Column2|
--------------------
|0 | 17| 18|
|1 | 19| 20|
Text Table:
|ID| Field| Value |
--------------------
|0 | A| 30|
|0 | B| 31|
|1 | A| 40|
|2 | B| 41|
Output:
|ID|Column1|Column2|Column3 (Field = 'A') | Column4 (Field = 'B')|
------------------------------------------------------------------
| 0| 17| 18| 30 | 31 |
| 1| 19| 20| 40 | 41 |
【问题讨论】:
-
问题表和文本之间是否存在一对多的关系?
-
您的意思是 1 行问题对应于文本中的多行?是的。问题以 ID 作为主键。文本使用 ID 和字段。
-
您要查找的关键字是
pivot- 请参阅stackoverflow.com/questions/tagged/pivot+sql -
如果您列出您的表结构会很有帮助,至少在它们的主键、相关外键和您想要的输出列方面。
-
我从 Netezza 环境中提取,所以 Pivot 不可用。