Как объединить одну и ту же таблицу в разные столбцы - PullRequest
0 голосов
/ 10 июля 2019

У меня есть основная таблица, с которой я работаю, cohort_table, которая содержит почтовые индексы в числовой форме в трех разных столбцах, customer_zip, payer_zip, provider_zip. Я хочу объединить эту таблицу с другой таблицей, city_zip, которая имеет числовые почтовые индексы в 3-значной форме в столбце с именем zip3 и 5-значную форму в столбце с именем zip5, а также город, который представляет каждый почтовый индекс city_name. Короче говоря, я хочу присоединиться к таблицам, где customer_zip = zip3, а где payer_zip = zip5, а где provider_zip = zip5. Когда я запускаю это, я получаю результаты, которые я ищу:

select *
from cohort_table
left join city_zip on zip3 = customer_zip

Однако, когда я пытаюсь выполнить все три объединения одновременно, я получаю сообщение об ошибке, что таблицы неоднозначны.

select *
from cohort_table
left join city_zip on zip3 = customer_zip
left join city_zip on zip5 = payer_zip
left join city_zip on zip5 = provider_zip

1 Ответ

3 голосов
/ 10 июля 2019

Используйте псевдонимы таблиц! Укажите названия столбцов!

select *
from cohort_table c left join
     city_zip zc3
     on zc3.zip3 = c.customer_zip left join
     city_zip zc5
     on zc5.zip5 = c.payer_zip left join
     city_zip zp5
     on zp5.zip5 = c.provider_zip;

Если бы вы прочитали мой ответ на свой предыдущий вопрос , вы бы увидели, как это сделать. Этот вопрос не совсем дубликат (и, следовательно, не закрытый), потому что вы ввели третью возможность поиска.

...