Postgresql Postgres-从每个别名获取数据

Postgresql Postgres-从每个别名获取数据,postgresql,Postgresql,在我的应用程序中,我有一个查询,它对一个表位置执行多个联接。就这样, SELECT * FROM (...) as trips join trip as t on trips.trip_id = t.trip_id left outer join vehicle as v on v.vehicle_id = t.trip_vehicle_id left outer join position as start on trips.start_position_id = start.positi

在我的应用程序中,我有一个查询,它对一个表位置执行多个联接。就这样,

SELECT *
FROM (...) as trips
join trip as t on trips.trip_id = t.trip_id

left outer join vehicle as v on v.vehicle_id = t.trip_vehicle_id

left outer join position as start on trips.start_position_id = start.position_id and start.position_vehicle_id = v.vehicle_id

left outer join position as "end" on trips.end_position_id = "end".position_id and "end".position_vehicle_id = v.vehicle_id

left outer join position as last on trips.last_position_id = last.position_id and last.position_vehicle_id = v.vehicle_id;
“我的表位置”有35列(例如“位置\标识”)

当我运行查询时,结果中的表位置应该显示3次,开始、结束和最后。但是postgres无法区分示例的start.position\u id、end.position\u id和last.position\u id。因此这三列是分组的,并显示为一个position\u id

由于start.position\u id和end.position\u id中的数据不同,因此结果中显示的列position\u id为空

无需重命名所有列,如:start.position\u id为start\u position\u id

如何分别获取每组数据,例如,从表“start”获取所有列。在MYSQL中,我可以通过调用fetch_字段来执行此操作,并为函数指定一个别名,如“start”

但我能在博士后做这件事吗

致以最良好的祝愿,
努诺·奥利维拉(Nuno Oliveira)

我的理解是,您无法(或发现很难)区分每个具有共享名称(如“position_id”)的列属于哪个表,但在任何时候只需要查看其中一组共享列。如果是这种情况,请在选择中使用
tablename.*
,这样
selecttrips.*,start.*。
将显示trips和start中的列,但不会显示联接中涉及的其他表中的列


从[…]表中选择[…,]开始。*[,…]作为开始[…]

您的查询看起来(至少)不完整。不过我还是会给你格式化一下。是的,它不完整,我只是把我有问题的那一部分放进去了。这是一个巨大的疑问!!谢谢。你的问题很难理解。您是否懒得在
SELECT…
子句中键入列名列表?不,我有一个很大的查询。表位置也有很多列。我想再问一遍这个问题。我想现在解释得更好!谢谢你的耐心,不是这样的!我知道怎么做。问题不一样!我有start.position\u id、end.position\u id和last.position\u id。这三列是分组的,但不应该是分组的。我想知道是否有给定别名的函数,例如start,该函数将从列、start.position\u id、start.position\u time等中获取数据。。。