具有未知行结果的枢轴

时间:2018-05-30 20:31:04

标签: sql postgresql pivot

为了简化我的问题,我们假设我有两个表:userscars,它们具有多对多关系(一个用户可以有很多车,并且一辆车可以是很多用户):

tbl_users          tbl_user_car                      tbl_cars
-------------      ----------------------------      ------
id_usr | name      id_usr_car | fk_usr | fk_car      id_car | name 
1      | usr1      1          | 1      | 1           1      | car1
2      | usr2      2          | 1      | 2           2      | car2
3      | usr3      3          | 2      | 1           3      | car3

我有一个网络CRUD,管理员可以将汽车与用户关联起来,所以我不知道有多少车有用户。所以我想做一个查询,显示用户及其所有相关的汽车,但像一个支点,如下所示:

SELECT * FROM pivot
------
name_usr | id_car | name_car  | id_car2 | name_car2 | ... n number of cars
usr1     | 1      | car1      | 2       | car2      | ...
usr2     | 1      | car1      |         |           | ...
usr3     |        |           |         |           | ...

我尝试使用crosstab()函数,但我需要知道要返回多少列,我需要进行5次内部联接以查看更多数据。任何帮助都将非常感激。

0 个答案:

没有答案