Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chọn nhiều tiêu đề sách có giá MIN (giá thấp nhất) trong MySQL

Tạo bảng sách

mysql> CREATE TABLE DemoTable1414 (BookTitle VARCHAR(40), BookPrice INT);
INSERT INTO DemoTable1414 VALUES
('Deep dive using java',560),('C++ in depth',360),('Data structure in C',590),
('Algorithm in C++',1090),('Java in Depth',360);

Dữ liệu

mysql> SELECT * FROM DemoTable1414;
+----------------------+-----------+
| BookTitle            | BookPrice |
+----------------------+-----------+
| Deep dive using java | 560       |
| C++ in depth         | 360       |
| Data structure in C  | 590       |
| Algorithm in C++     | 1090      |
| Java in Depth        | 360       |
+----------------------+-----------+

Truy vấn: Subquery MIN(BookPrice) trong WHERE

mysql> SELECT BookTitle FROM DemoTable1414
    -> WHERE BookPrice = (SELECT MIN(BookPrice) FROM DemoTable1414);

Kết quả: 2 cuốn sách giá 360

+---------------+
| BookTitle     |
+---------------+
| C++ in depth  |
| Java in Depth |
+---------------+

Mở rộng: Để lấy top N giá thấp nhất (kể cả trùng), dùng WHERE BookPrice IN (SELECT DISTINCT BookPrice FROM DemoTable1414 ORDER BY BookPrice LIMIT 2) (MySQL 8.0+ hỗ trợ LIMIT trong subquery).