Computer >> Máy Tính >  >> Lập trình >> MySQL

Truy vấn con một hàng và nhiều hàng là gì?

Truy vấn một hàng con

Truy vấn con một hàng được sử dụng khi kết quả của truy vấn bên ngoài dựa trên một giá trị duy nhất, không xác định. Mặc dù loại truy vấn này chính thức được gọi là "một hàng", tên này ngụ ý rằng truy vấn trả về nhiều cột - nhưng chỉ một hàng kết quả. Tuy nhiên, truy vấn con một hàng chỉ có thể trả về một hàng kết quả chỉ bao gồm một cột cho truy vấn bên ngoài.

Trong truy vấn SELECT bên dưới, MySQL bên trong chỉ trả về một hàng, tức là mức lương tối thiểu cho công ty. Đổi lại, nó sử dụng giá trị này để so sánh mức lương của tất cả nhân viên và chỉ hiển thị những người có mức lương bằng mức lương tối thiểu.

 CHỌN first_name, lương, nhân viên của phòng ban 

Mệnh đề HAVING được sử dụng khi nhóm kết quả của một truy vấn cần được hạn chế dựa trên một số điều kiện. Nếu kết quả của truy vấn con phải được so sánh với một hàm nhóm, bạn phải lồng truy vấn bên trong vào mệnh đề HAVING của truy vấn bên ngoài.

 CHỌN Department_id, MIN (lương) TỪ nhân viên 

Truy vấn con nhiều hàng

Truy vấn con nhiều hàng là các truy vấn lồng nhau có thể trả về nhiều hơn một hàng kết quả cho truy vấn chính. Truy vấn con nhiều hàng được sử dụng phổ biến nhất trong mệnh đề WHERE và HAVING. Vì nó trả về nhiều hàng nên nó phải được xử lý bởi các toán tử so sánh đã đặt (IN, ALL, ANY). ALL so sánh một giá trị với mọi giá trị được trả về bởi một truy vấn con. Truy vấn bên dưới sẽ hiển thị lỗi vì truy vấn con một hàng trả về nhiều hàng.

 CHỌN first_name, Department_id TỪ nhân viên WHERE Department_id =(CHỌN Department_id TỪ nhân viên WHERE LOCATION_ID =100)