Mysql không có trong truy vấn con không hoạt động

Tóm lược. trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng truy vấn con MySQL để viết các truy vấn phức tạp và giải thích khái niệm truy vấn con tương quan

Giới thiệu về Truy vấn con MySQL

Truy vấn con MySQL là một truy vấn được lồng trong một truy vấn khác, chẳng hạn như 

SELECT customerNumber, checkNumber, amount FROM payments WHERE amount = (SELECT MAX(amount) FROM payments);

Code language: SQL (Structured Query Language) (sql)1,

SELECT customerNumber, checkNumber, amount FROM payments WHERE amount = (SELECT MAX(amount) FROM payments);

Code language: SQL (Structured Query Language) (sql)2,

SELECT customerNumber, checkNumber, amount FROM payments WHERE amount = (SELECT MAX(amount) FROM payments);

Code language: SQL (Structured Query Language) (sql)3 hoặc 

SELECT customerNumber, checkNumber, amount FROM payments WHERE amount = (SELECT MAX(amount) FROM payments);

Code language: SQL (Structured Query Language) (sql)4. Ngoài ra, một truy vấn con có thể được lồng trong một truy vấn con khác

Truy vấn con MySQL được gọi là truy vấn bên trong trong khi truy vấn chứa truy vấn con được gọi là truy vấn bên ngoài. Truy vấn con có thể được sử dụng ở bất kỳ đâu mà biểu thức đó được sử dụng và phải được đóng trong ngoặc đơn

Ví dụ: truy vấn sau sử dụng truy vấn con để trả về những nhân viên làm việc trong văn phòng ở Hoa Kỳ

SELECT lastName, firstName FROM employees WHERE officeCode IN (SELECT officeCode FROM offices WHERE country = 'USA');

Code language: SQL (Structured Query Language) (sql)

trong ví dụ này

  • Truy vấn con trả về tất cả các mã văn phòng của các văn phòng đặt tại Hoa Kỳ
  • Truy vấn bên ngoài chọn họ và tên của nhân viên làm việc trong văn phòng có mã văn phòng trong tập kết quả được trả về bởi truy vấn con

Khi thực hiện truy vấn, MySQL đánh giá truy vấn con trước và sử dụng kết quả của truy vấn con cho truy vấn bên ngoài

Sử dụng truy vấn con MySQL trong mệnh đề WHERE

Chúng tôi sẽ sử dụng bảng

SELECT customerNumber, checkNumber, amount FROM payments WHERE amount = (SELECT MAX(amount) FROM payments);

Code language: SQL (Structured Query Language) (sql)5 trong cơ sở dữ liệu mẫu để minh họa

Truy vấn con MySQL với các toán tử so sánh

Bạn có thể sử dụng các toán tử so sánh e. g. , =, >, < để so sánh một giá trị duy nhất được truy vấn con trả về với biểu thức trong mệnh đề

SELECT customerNumber, checkNumber, amount FROM payments WHERE amount = (SELECT MAX(amount) FROM payments);

Code language: SQL (Structured Query Language) (sql)6

Ví dụ: truy vấn sau trả về khách hàng có khoản thanh toán cao nhất

SELECT customerNumber, checkNumber, amount FROM payments WHERE amount = (SELECT MAX(amount) FROM payments);

Code language: SQL (Structured Query Language) (sql)

Bên cạnh toán tử

SELECT customerNumber, checkNumber, amount FROM payments WHERE amount = (SELECT MAX(amount) FROM payments);

Code language: SQL (Structured Query Language) (sql)7, bạn có thể sử dụng các toán tử so sánh khác như lớn hơn (

SELECT customerNumber, checkNumber, amount FROM payments WHERE amount = (SELECT MAX(amount) FROM payments);

Code language: SQL (Structured Query Language) (sql)8), lớn hơn hoặc bằng (>=) nhỏ hơn (

SELECT customerNumber, checkNumber, amount FROM payments WHERE amount = (SELECT MAX(amount) FROM payments);

Code language: SQL (Structured Query Language) (sql)9) và nhỏ hơn hoặc bằng (

Chủ đề