如何用来自不同 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;
有两个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 和 originStationBEGIN 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;