Hinh như bạn đang hiểu cái UNION ALL hơi sai thì phải.
Vd như: câu query 1 của bạn ra 1 dòng
01 | NGUYEN
Câu 2 ra 2 dòng:
01 | HR
02 | IT
=> như vậy câu UNION ALL sẽ ra kết quả là
(header)
DEPARTMENT_ID | LAST_NAME
(data)
01 | NGUYEN
01 | HR
02 | IT
Nếu bạn muốn LAST_NAME và DEPARTMENT_NAME tách ra làm 2 cột, thì bạn phải thêm “cột giả” vào mệnh đề SELECT của từng câu query:
SELECT employees.department_id,employees.last_name, ’ ’ DEPERTMENT_NAME FROM employees
UNION ALL
SELECT departments.department_id, ’ ', departments.department_name FROM departments;
Lưu ý là columns trong câu 2 ko cần đặt tên vì kết quả query sẽ lấy tên theo câu query đầu tiên.
Nếu bạn học SQL trên Oracle thì xem clip này về chủ đề các toán tử tổ hợp: https://www.youtube.com/watch?v=-WHp68BbpB0&list=PLNJklplv9g17TExTIdAA7iiDgdLKlmDsz&index=8