Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

làm thế nào để sắp xếp thứ tự của LEFT JOIN trong truy vấn SQL?

Thử sử dụng MAX với GROUP BY .

SELECT u.userName, MAX(c.carPrice)
FROM users u
    LEFT JOIN cars c ON u.id = c.belongsToUser
WHERE u.id = 4;
GROUP BY u.userName;

Thông tin thêm về GROUP BY

Mệnh đề group by được sử dụng để chia các bản ghi đã chọn thành các nhóm dựa trên các kết hợp duy nhất của nhóm theo cột. Sau đó, điều này cho phép chúng ta sử dụng các hàm tổng hợp (ví dụ:MAX, MIN, SUM, AVG, ...) sẽ lần lượt được áp dụng cho từng nhóm bản ghi. Cơ sở dữ liệu sẽ trả về một bản ghi kết quả duy nhất cho mỗi nhóm.

Ví dụ:nếu chúng ta có một tập hợp các bản ghi biểu thị nhiệt độ theo thời gian và vị trí trong một bảng như sau:

Location   Time    Temperature
--------   ----    -----------
London     12:00          10.0
Bristol    12:00          12.0
Glasgow    12:00           5.0
London     13:00          14.0
Bristol    13:00          13.0
Glasgow    13:00           7.0
...

Sau đó, nếu chúng ta muốn tìm nhiệt độ tối đa theo vị trí, thì chúng ta cần chia các bản ghi nhiệt độ thành các nhóm, trong đó mỗi bản ghi trong một nhóm cụ thể có cùng một vị trí. Sau đó, chúng tôi muốn tìm nhiệt độ tối đa của mỗi nhóm. Truy vấn để thực hiện việc này sẽ như sau:

SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn mysql đơn giản để kiểm tra xem hàng có tồn tại hay không

  2. Gửi tọa độ gps hiện tại đến cơ sở dữ liệu mySQL bằng api google maps

  3. Khớp dấu '%' khi tìm kiếm trong cơ sở dữ liệu MySQL

  4. Lệnh MySQL Giải thích bỏ qua LIMIT?

  5. Cách sử dụng kết nối liên tục mysqli trên các trang khác nhau