Tải bản đầy đủ (.pdf) (13 trang)

NGÔN NGỮ SQL - Các truy vấn lồng nhau

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (313.6 KB, 13 trang )

NGÔN NGỮ SQL
Các truy vấn lồng nhau
Để tìm mã số và tên những nhân viên phòng ‘Kỹ thuật’ có
thể dùng câu truy vấn sau
SELECT manv, ho_ten
FROM nhan_vien
WHERE ma_dv IN
(SELECT ma_dv
FROM phong
WHERE ten_phong = ‘Kỹ thuật’);
58
59
NGÔN NGỮ SQL
Các truy vấn lồng nhau
Xét câu hỏi: ‘Tìm tên của những nhân viên có lương đạt trên
mức lương trung bình của tất cả các nhân viên, đồng thời cho
biết luôn mức chênh lệch này’
SELECT ho_ten , luong – (SELECT AVG(luong) FROM
nhan_vien) AS hieu
FROM nhan_vien
WHERE luong >
(SELECT AVG(luong)
FROM nhan_vien);
60
NGÔN NGỮ SQL
Các truy vấn lồng nhau
Câu ORDER BY không được sử dụng trong một câu truy vấn
con mặc dù nó có thể được dùng trong câu truy vấn ngoài
cùng.
Danh sách các mục được liệt kê bởi câu truy vấn con
SELECT phải chứa tên của một cột hoặc một biểu thức trừ


phi câu truy vấn con này dùng từ khóa EXISTS.
61
NGÔN NGỮ SQL
Các truy vấn lồng nhau
Theo ngầm định, các tên cột trong câu truy vấn con tham chiếu
đến tên bảng trong câu FROM của truy vấn con này, hoặc có
thể tham chiếu đến bảng trong câu FROM của truy vấn ngoài
bằng việc xác định tên cột đó.
Khi một câu truy vấn con là một trong hai toán hạng của một
biểu thức so sánh thì truy vấn con này phải xuất hiện ở vế phải
của so sánh.
62
NGÔN NGỮ SQL
Các truy vấn lồng nhau
Muốn biết thông tin về những nhân viên làm việc cho đơn vị có
địa điểm là ’23 Lý Thường Kiệt’, có thể dùng truy vấn như sau
SELECT *
FROM nhan_vien
WHERE ma_dv IN
(SELECT ma_dv
FROM dia_diem_dv
WHERE dia_diem = ’23 Lý Thường Kiệt);

×