Я надеюсь, что заголовок правильно описывает мою проблему, простите, если я ошибаюсь.
Я хотел бы получить расстояние между двумя точками (в данном примере CN и US) на основе следующих трех таблиц :
Отгрузки
|----------------------|-------------------|----------------|
| from | to | distance |
|----------------------|-------------------|----------------|
| CN | US | |
|----------------------|-------------------|----------------|
Местоположения
|----------------------|-------------------|
| location | location_id |
|----------------------|-------------------|
| CN | 123 |
| US | 456 |
|----------------------|-------------------|
Расстояния
|----------------------|-------------------|----------------|
| from_location_id | to_location_id | distance |
|----------------------|-------------------|----------------|
| 123 | 456 | 789 |
|----------------------|-------------------|----------------|
Вот что у меня есть:
UPDATE Shipments SHP
INNER JOIN Locations LOC1 ON SHP.from = LOC1.location
INNER JOIN Distances DST1 ON LOC1.location_id = DST1.from_location_id
INNER JOIN Locations LOC2 ON SHP.to = LOC2.location
INNER JOIN Distances DST2 ON LOC2.location_id = DST2.to_location_id
SET SHP.distance = DST2.distance;
У меня проблемы с установкой правильного псевдонима, чтобы обеспечить вертикальное внутреннее соединение. Также я не уверен, как использовать псевдоним в предложении SET в конце. Я пытался использовать DST2, но это дает ложные результаты. Заранее спасибо за любую помощь!