본문 바로가기
DataBase/MySQL 오류해결

MySQL 별칭 오류 해결 SQL ERROR (1248)

by 코딩이라구 2022. 10. 6.

MySQL 별칭(Alias) 관련 오류 해결 방법 SQL 오류 (1248)

 

MySQL에서 SELECT문 조회를 시도하던 중 아래와 같은 오류가 발생하였습니다.

 

SQL 오류 (1248): Every derived table must have its own alias

(번역 : 모든 파생 테이블에는 고유한 별칭이 있어야 합니다.)

 

한마디로 별칭(Alias)을 지정하지 않았을 경우 발생하는 오류입니다.

이번에는 SQL ERROR (1248)에 대하여 알아보도록 하겠습니다.

 


1. 원인

MySQL에서는 FROM절의 모든 테이블에는 이름이 있어야 합니다. 하나의 테이블일 때는 그 자체만으로 테이블의 이름이 되지만, 여러 개의 테이블이 있을 경우 각각의 이름(별칭)을 붙여줍니다. 이는 서브 쿼리를 사용한 FROM절에서도 동일합니다. 

 

SQL ERROR (1248)은 서브 쿼리를 사용하였지만 별칭(Alias)을 지정하지 않았기에 발생한 에러입니다. 이 경우에는 서브 쿼리에 별칭을 지정해주시면 문제가 해결됩니다.

 


2. 해결 방법

MySQL에서 SQL ERROR (1248) 해결 방법에 대하여 자세히 알아보도록 하겠습니다.

해당 오류가 발생한 쿼리문에서 각각의 서브 쿼리에 별칭이 지정되어 있는지 확인합니다. 별칭이 지정되지 않은 서브 쿼리에는 별칭을 지정하신 후 다시 쿼리문을 실행하시면 성공적으로 조회가 되는 것을 확인하실 수 있습니다.

 

1) 오류가 발생한 쿼리문

SELECT *
  FROM (
	SELECT id, name
	  FROM sample
	 WHERE name = '홍길동'
       )
ORDER BY id ASC;

 

2) 서브 쿼리에 별칭(A)을 지정한 쿼리문 ( 오류 해결 )

SELECT A.*
  FROM (
	SELECT id, name
	  FROM sample
	 WHERE name = '홍길동'
       ) A
ORDER BY A.id ASC;

 


3. 참조 자료 링크

 


'DataBase > MySQL 오류해결' 카테고리의 다른 글

MySQL 함수 생성 오류 해결 ERROR 1418 (HY000)  (0) 2022.10.05

댓글