SQL: создание представления для 2 таблиц и 1 справочной таблицы

Я получил вопрос SQL новичка, на который я не могу найти ответ. Пожалуйста, позвольте мне объяснить с выдуманным (но актуальным) сценарием:

Допустим, у меня есть две таблицы: TBL_HOME а также TBL_WORK, Обе таблицы имеют набор столбцов, которые в основном связаны с адресом соответствующего места. У меня также есть одна справочная таблица под названием REF_CITY это просто две колонки, CITY_ID а также CITY_NAME, Мне нужен вид, который имеет (среди прочих) CITY_NAME из обоих мест.

Я знаю как получить CITY_NAME для одной из 2 таблиц:

// e.g., Get city name for HOME
SELECT c.CITY_NAME AS HOME_CITY
FROM TBL_HOME h
LEFT JOIN REF_CITY c ON h.CITY_ID = c.CITY_ID

Но я в недоумении от того, как CITY_NAME для обоих мест можно добавить в тот же вид, что и ссылка на c.CITY_NAME уже сделан для одной локации.

1 ответ

Решение

Вы можете выполнить это, соединив две таблицы вместе, а затем дважды присоединившись к справочной таблице. Используя ваш TBL_HOME а также TBL_WORK пример:

SELECT CityHOME.CITY_NAME as HomeCity, CityWork.CITY_NAME as WorkCity
FROM TBL_HOME HOME
LEFT JOIN TBL_WORK WORK on HOME.PrimaryKey = WORK.ForeignKey
LEFT JOIN REF_CITY CityHOME on CityHOME.CITY_ID = HOME.CITY_ID
LEFT JOIN REF_CITY CityWork on CityWork.CITY_ID = WORK.CITY_ID
Другие вопросы по тегам