Câu lệnh "union all" va "union"

Em dùng “union all” 2 câu lệnh select nhưng không thể nào hiển thị department name của bảng department.

select employees.department_id,employees.last_name from employees
union all
select departments.department_id ,departments.department_name from departments;

EDIT (@library): Cau lam on viet tieng Viet co dau tu cac post sau nha :smile:
(Cậu làm ơn viết tiếng Việt có dấu từ các post sau nha)

1 Like

Cho tui xin cái thông báo lỗi bạn ơi.

2 Likes

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

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?