为了简化我的问题,我们假设我有两个表:users
和cars
,它们具有多对多关系(一个用户可以有很多车,并且一辆车可以是很多用户):
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次内部联接以查看更多数据。任何帮助都将非常感激。