Postgresql Postgres从表中选择并均匀分布

Postgresql Postgres从表中选择并均匀分布,postgresql,Postgresql,我有两张桌子。第一个表包含对象的信息,第二个表包含相关对象。第二个表对象有4种类型(让我们称之为em A、B、C、D) 我需要一个这样的查询 |table1 object id | A |value for A|B | value for B| C | value for C|D | vlaue for D| | 1 | 12| cat | 13| dog | 2 | house | 43| car

我有两张桌子。第一个表包含对象的信息,第二个表包含相关对象。第二个表对象有4种类型(让我们称之为em A、B、C、D)

我需要一个这样的查询

    |table1 object id | A |value for A|B  |  value for B| C | value for C|D  | vlaue for D|
    |     1           | 12| cat       | 13| dog         | 2 | house      | 43| car        |
    |     1           | 5 | lion      |   |             |   |            |   |            |
real table中的列“table1对象id”是表1中的多列数据(对于单个对象,它是相同的,只是由于表2而在多行上重复)

第二张表格的格式是什么

|type|value|table 1 object id| id |
|A   |cat  |      1          |  12|
|B   |dog  |      1          |  13|
|C   |house|      1          |  2 |
|D   |car  |      1          | 43 |
|A   |lion |      1          | 5  |
我希望我想要的东西已经足够清楚了

我已经尝试使用和或加入。这似乎不是交叉表可以做到的事情

编辑 表2

表1

| id | value1 | value 2|value 3|
|  1 | hello  | test   | hmmm  |
|  2 | bye    | test2  | hmm2  |
结果

|value1| value2| value3| A| value| B |value| C|value  | D | value|
|hello | test  | hmmm  |12| cat  | 13| dog |2 | house | 23| car  |
|hello | test  | hmmm  |5 | lion |   |     |  |       |   |      |
|bye   | test2 | hmm2  |  |      |   |     |6 | wolf  |   |      |

我希望这能更好地解释我想要实现的目标。

这里似乎适合连接和交叉表-显示不起作用的查询?。信息不足,示例中也不清楚-查询应返回多少行?为什么它会归还“猫狗屋车”而不是“狮子狗屋车”?@Eugene它需要归还所有的东西。如果我们有两个类型为A的元素,那么需要返回两行。基本上,它需要以一种紧凑的方式返回表1中与对象连接的所有内容。@VaoTsun我还无法创建一个查询,甚至远程提供我所需的内容。
|value1| value2| value3| A| value| B |value| C|value  | D | value|
|hello | test  | hmmm  |12| cat  | 13| dog |2 | house | 23| car  |
|hello | test  | hmmm  |5 | lion |   |     |  |       |   |      |
|bye   | test2 | hmm2  |  |      |   |     |6 | wolf  |   |      |