如何用来自不同 table 的站点 ID 替换 Journey Table 中的 originStation 和 destinationStation,即 Postgres 中的 Station Table

How to replace the originStation and destinationStation in Journey Table with the station-id from a different table i,e Station Table in Postgres

有两个table“旅程”和“车站”。 Journey table 由 journey-id、originStation 和 destinationStation 组成。 Station table 包括 station-id, stationName.

旅程table

id originStation destinationStation
1 Delhi Mumbai

车站Table

station_id stationName
a1 Delhi
a2 Mumbai

结果 table 必须遵循使用 SQL。谢谢你帮我。

id originStation destinationStation
1 a1 a2

尝试了以下查询,但它用相同的 station_id

替换了 destinationStation 和 originStation
BEGIN TRANSACTION;
/* Create Table Journey */
CREATE TABLE journey(id integer PRIMARY KEY, originStation text,destinationStation text);
INSERT INTO journey VALUES(1,'Delhi', 'Mumbai');

/* Create Table Station */

CREATE TABLE station(station_id text PRIMARY KEY, stationName text);
INSERT INTO station VALUES('a1','Delhi');
INSERT INTO station VALUES('a2','Mumbai');

COMMIT;
/* Query*/
SELECT journey.id, station.station_id as originStation, station.station_id as destinationStation
        FROM journey  JOIN station
          ON journey.destinationstation = station.stationName;

你只需 join 两次:

select j.*, so.stationId as originStationId, sd.stationId as destinationStationId
from journey j left join
     stations so
     on j.originStation = so.stationName left join
     stations sd
     on j.destinationStation = sd.stationName;