外键列的 SQL Pivot

Posted

技术标签:

【中文标题】外键列的 SQL Pivot【英文标题】:SQL Pivot for foreign key column 【发布时间】:2009-04-27 17:55:13 【问题描述】:

我有一张这样的桌子: 财政年度、地区、国家、办公室1、办公室2、办公室3、办公室4

office 1-4 是外键。

我想得到这样的输出: 办公室 1:财政年度、地区、国家 办公室 2:财政年度、地区、国家 办公室 3:财政年度、地区、国家 办公室 4:财政年度、地区、国家

这可以使用枢轴完成吗?

【问题讨论】:

【参考方案1】:

我认为这更像是 UNPIVOT:

SELECT [Fiscal Year], Region, County, OFfice
FROM 
   (SELECT [Fiscal Year], Region, County, OFfice1, Office2, Office3, Office4
   FROM unpvt) p
UNPIVOT
   (yourtable FOR Office IN 
      (Office1, Office2, Office3, Office4)
) AS unpvt;

但是你也可以通过一个简单的查询来做到这一点:

select [Fiscal Year], Region, County, OFfice1 
from yourtable
union
select [Fiscal Year], Region, County, OFfice2 
from yourtable
union
select [Fiscal Year], Region, County, OFfice3
from yourtable
union
select [Fiscal Year], Region, County, OFfice4
from yourtable

【讨论】:

以上是关于外键列的 SQL Pivot的主要内容,如果未能解决你的问题,请参考以下文章

SQL 删除外键列

如何使用普通 JDBC 获取目标表的名称和外键列的列

如何在Django中加入非主键和外键列的查询

MYSQL外键约束

如何使用 Sequelize 和 mySql 选择外键列的名称?

实体框架 4.1 代码优先映射到将主键作为外键列的表