基于表格内容的动态列视图

时间:2014-01-28 21:20:34

标签: postgresql

我一直在尝试寻找解决方案一段时间,但我一定不知道正确的术语。以下是我正在努力完成的简化版本。

鉴于这三个表:

表:事物

| id | name | 
-------------
| 1  | Foo  |
| 2  | Bar  |
| 3  | Baz  |

表:问题

| id | title  |
---------------
| 1  | Crazy  |
| 2  | Stupid |
| 3  | Ugly   |

表:thing_issue

| id | thing_id | issue_id |
----------------------------
| 1  | 1        | 1        |
| 2  | 1        | 2        |
| 3  | 1        | 3        |
| 4  | 2        | 2        |
| 5  | 3        | 1        |
| 6  | 3        | 3        |

我希望有一个产生以下内容的视图:

| Thing ID | Thing Name | Crazy | Stupid | Ugly |
-------------------------------------------------
| 1        | Foo        | Yes   | Yes    | Yes  |
| 2        | Bar        | No    | Yes    | No   |
| 3        | Baz        | Yes   | No     | Yes  |

棘手的部分是我希望最终的列基于issue表的内容是动态的。意思是,如果issue表因此插入了一行:

表:问题

| id | title  |
---------------
| 1  | Crazy  |
| 2  | Stupid |
| 3  | Ugly   |
| 4  | Mad    |

然后视图的输出如下(不对视图进行任何修改):

| Thing ID | Thing Name | Crazy | Stupid | Ugly | Mad |
-------------------------------------------------------
| 1        | Foo        | Yes   | Yes    | Yes  | No  |
| 2        | Bar        | No    | Yes    | No   | No  |
| 3        | Baz        | Yes   | No     | Yes  | No  |

我正在使用PostgreSQL 9.2。任何帮助都会有很大的帮助!

0 个答案:

没有答案