실행 계획에 표시되는 각 컬럼이 어떤 것을 의미하고, 어떤 값이 출력되는지 살펴본다.
SELECT ...
FROM (SELECT ... FROM tb_test1) tb1, tb_test2 tb2
WHERE tb1.id = tb2.id
## 위의 쿼리 문장을 SELECT 단위로 구분한 결과
SELECT ... FROM tb_test1;
SELECT ... FROM tb1, tb_test2 WHERE tb1.id = tb2.id
SELECT ...
FROM (SELECT ... FROM tb_test1) tb1, tb_test2 tb2
WHERE tb1.id = tb2.id
## 다음 쿼리의 실행 계획은 2개의 레코드가 출력되고,
## 각 레코드의 id값은 1로 동일하다.
EXPLAIN
SELECT e.emp_no, e.first_name, s.from_date, s.salary
FROM employees e, salaries s
WHERE e.emp_no-s.emp_no LIMIT 10;
## 다음 쿼리의 실행 계획은 3개의 레코드가 출력되고,
## 각 레코드의 id값은 1~3까지로 모두 다르다.
EXPLAIN
SELECT
( (SELECT COUNT(*) FROM employees) + (SELECT COUNT(*) FROM departments) ) AS total
EXPLAIN FORMAT=TREE
명령으로 확인하면 순서를 더 정확히 알 수 있다.