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