반응형
파생된 모든 테이블에 별칭이 있습니다!'오류 1248: 파생된 모든 테이블에는 고유한 별칭이 있어야 합니다'라는 메시지가 표시되는 이유는 무엇입니까?
이 쿼리를 실행할 때마다 다음 메시지가 표시됩니다.
오류 1248(42000):파생된 모든 테이블에는 고유한 별칭이 있어야 합니다.
보다시피 하위 쿼리에 의해 생성된 파생 테이블에 대해 조인을 남긴 상위 쿼리가 있습니다.
이 하위 쿼리는 두 번째 파생 테이블에서 선택하고 내부는 세 번째 파생 테이블에 결합합니다.
세 개의 파생된 테이블 모두 적절한 별칭을 가집니다(n1
,n2
그리고.subquery
)
하위 쿼리는 독립적으로 실행할 때 예상대로 실행됩니다.이 문제는 상위 쿼리에 래핑할 때만 발생합니다.
쿼리:
SELECT DATE_FORMAT(p.date_admitted, '%Y-%m') as month_admitted,
diagnosis as diagnosis,
education as education,
COUNT(*) as total
FROM patient_discharge_form d
INNER JOIN survey_data sd ON sd.id = d.id
LEFT JOIN submission s ON s.id = sd.submission_id
LEFT JOIN patient p ON p.id = s.patient_id
LEFT JOIN (
SELECT n1.id,n1.diagnosis,n2.education
FROM (
SELECT id,'Gest Hyp' as diagnosis FROM patient_discharge_form WHERE gestational_hypertension=1
UNION ALL
SELECT id,'Pre w/ Sev' FROM patient_discharge_form WHERE preeclampsia_non_severe=1
) n1
INNER JOIN (
SELECT id,'Written' as education FROM patient_discharge_form WHERE education LIKE '%written%'
UNION ALL
SELECT id,'Verbal' FROM patient_discharge_form WHERE education LIKE '%verbal%'
) n2 ON n1.id=n2.id
) subquery ON d.id = subquery.id
WHERE (s.status = 'complete')
GROUP BY month_admitted, diagnosis, education
음... 쿼리에서 테이블 별칭에 문제가 없습니다.저는 이것이 당신이 실행하고 있는 쿼리인지 궁금합니다.
하지만 열 별칭에 문제가 있습니다.education
의 란select
(그리고 아마도.diagnosis
역시) 애매합니다.둘 중 하나에서 올 수 있습니다.d
또는subquery
그리고 아마도 다른 테이블들도 마찬가지일 것입니다.
일반적으로 문제를 방지하려면 쿼리의 모든 열 이름을 한정해야 합니다.
언급URL : https://stackoverflow.com/questions/68965163/all-my-derived-tables-have-aliases-why-am-i-getting-error-1248-every-derived
반응형
'programing' 카테고리의 다른 글
부트스트랩 글리피콘을 ASP 안에 넣으려면 어떻게 해야 합니까?ASP의 버튼입니다.그물? (0) | 2023.08.09 |
---|---|
Oracle에서 시퀀스가 있는 여러 행 삽입 (0) | 2023.08.09 |
PHP를 사용하는 MariaDB: SQLSTATE[HY000] [2002] 연결이 거부되었습니다. (0) | 2023.08.09 |
안드로이드에서 방향 변경을 비활성화하려면 어떻게 해야 합니까? (0) | 2023.08.09 |
numpy.numelta64 값에서 일 수 추출 (0) | 2023.08.09 |