인프런 커뮤니티 질문&답변

민경언님의 프로필 이미지

작성한 질문수

Real MySQL 시즌 1 - Part 1

Ep.06 Lateral Derived Table

LATERAL 키워드는 mysql8 에서 잘 지원 되나요?

24.08.24 17:43 작성

·

43

0

제목 그대로 입니다.

저는 지금 11.4.2-MariaDB-ubu2404 버전을 사용 하고 있는데요.. lateral 키워드를 인식을 못합니다.

검색 해서 알아보니 마리아디비 및 mysql 에서는 lateral 키워드를 완벽히 지원 못한다는 내용이 있던데요..

원래 PostgreSQL 에서 지원하는 기능 이었다고 하던데요..

 

mysql 8 강의에서 소개를 하고 있다면 사용 가능한 것 일텐데..

저의 데이터베이스 세팅 등이 이상한 걸까요?

mysql 8 버전으로 테스트를 해봐야 할까요?

lateral 설명을 보니 많은 도움이 될 것 같아 꼭 사용 하고 싶은 기능인데.. 왜 안되는지 알 수가 없네요..

 

왜 그럴까요??

SELECT e.emp_id, e.emp_name, l.recent_salary, l.salary_date

FROM employees e

LEFT JOIN LATERAL (

SELECT salary AS recent_salary, date AS salary_date

FROM salary_history sh

WHERE sh.emp_id = e.emp_id

ORDER BY date DESC

LIMIT 1

) AS l ON TRUE;

하면

SQL Error [1064] [42000]: (conn=9) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(

이런 에러가 생깁니다.

LATERAL 을 인식 못하는 것 같습니다.

 

 

 

답변 2

0

Oren Andree님의 프로필 이미지

2024. 08. 27. 17:38

반면, MySQL 8.0 이상 버전에서는 LATERAL 키워드를 지원합니다. 따라서, 이 기능을 fnf 사용하려면 MySQL 8.0 이상의 버전으로 데이터베이스를 변경하는 것이 필요합니다.

0

백은빈님의 프로필 이미지
백은빈
지식공유자

2024. 08. 24. 21:42

안녕하세요.

MariaDB에서는 쿼리에서 LATERAL 키워드 사용이 불가하고, 내부적으로 Lateral Derived 최적화를 지원하는 것으로 보입니다.

저희 강의 내용은 MySQL 8.0을 기반으로 하므로, 강의에서 소개된 기능 등을 테스트하실 때는 가능하시다면 MySQL 8.0 버전대를 설치해서 테스트해봐주시면 좋을 것 같습니다.

추가로 궁금한 부분 있으시면 다시 말씀해주세요.

감사합니다.