Я подозреваю, что ваша таблица car
имеет такую форму:
| id | name | old_name_id |
| ---- | --------------- | ----------- |
| 1 | 'Peugeot' | null |
| 2 | 'Mercedes' | null |
| 3 | 'Mercedes Benz' | 2 |
Сначала я хотел бы представить запрос, который возвращает 2 столбца: name
и old_name
:
SELECT c.name, old_c.name
FROM car c
JOIN car old_c ON (c.id = old_c.old_name_id)
, который должен вернуть это:
| c.name | old_c.name |
| --------------- | --------------- |
| 'Peugeot' | null | -- not sure
| 'Mercedes' | 'Mercedes Benz' |
| 'Mercedes Benz' | null | -- not sure
это вернет все автомобили, имеющие старое имя (не уверен, будут ли показаны записи с null
, но я думаю, что да, потому что это JOIN
а не LEFT JOIN
.
Теперь, если вы хотите изолировать и получить, например, только запись для 'Mercedes'
, сделайте это так:
SELECT c.name, old_c.name
FROM car c
JOIN car old_c ON (c.id = old_c.old_name_id)
WHERE c.name = 'Mercedes'
и выесть такой результат:
| c.name | old_c.name |
| ---------- | --------------- |
| 'Mercedes' | 'Mercedes Benz' |