#sql #join #amazon-redshift
Вопрос:
Я написал этот sql-код для запроса данных в redshift
Select
tenant_name, date, fk_organization_unit, active_member_per_studio, cn
From
(
SELECT
tenant_name, date, fk_organization_unit, active_member_per_studio
from
fct.st_member_development as st_member_development
inner join
(
SELECT
tenant_name as tn, fk_organization_unit as fk, type, date as dt, contract_count as cn
from
fct.st_contract_development
)
u
on st_member_development.tenant_name =u.tn
and st_member_development.fk_organization_unit =u.fk
and st_member_development.date =u.dt
)
x
limit 5
Я получил следующую ошибку
ОШИБКА: столбец «cn» не существует в derived_table1
как я мог бы это исправить, пожалуйста
Комментарии:
1. Я отредактировал ваш вопрос, чтобы использовать более читаемый макет. Используя отступы (в самом начале), это становится очень понятным.
u
имеет столбец с именем,cn
, ноx
не выбирает его, поэтому, конечно, внешний запрос не может его увидеть.
Ответ №1:
Вы получаете эту ошибку, потому cn
что во втором столбце отсутствует SELECT
столбец . Попробуйте это:
Select tenant_name, date, fk_organization_unit, active_member_per_studio, cn
From (
SELECT tenant_name, date, fk_organization_unit, active_member_per_studio, cn
from fct.st_member_development as st_member_development
inner join
(SELECT tenant_name as tn, fk_organization_unit as fk, type, date as dt, contract_count as cn from fct.st_contract_development) u
on st_member_development.tenant_name =u.tn and st_member_development.fk_organization_unit =u.fk and st_member_development.date =u.dt
)
limit 5
Ответ №2:
Вы пропустили столбец cn
во внутреннем запросе.
Select
tenant_name, date, fk_organization_unit, active_member_per_studio, cn
From
(
SELECT
tenant_name, date, fk_organization_unit, active_member_per_studio, cn
from
fct.st_member_development as st_member_development
inner join
(
SELECT
tenant_name as tn, fk_organization_unit as fk, type, date as dt, contract_count as cn
from
fct.st_contract_development
)
u
on st_member_development.tenant_name =u.tn
and st_member_development.fk_organization_unit =u.fk
and st_member_development.date =u.dt
)
x
limit 5
Комментарии:
1. Помимо внесения изменений в форматирование, которые я внес, это не делает ничего такого, что делает предыдущий ответ. На самом деле, предыдущий ответ фактически объясняет, в чем проблема, а ответ-нет.
2. @MatBailie извините, мое окно было открыто несколько раз. Так что к тому времени был дан еще один ответ. Я не эксперт по красному смещению, но в этом ответе отсутствуют псевдонимы для подзапросов. Все в порядке? Тогда я должен удалить свой ответ.