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

Truy vấn SELECT trả về 1 hàng từ mỗi nhóm

Có nhiều lựa chọn thay thế để giải quyết vấn đề này, một trong những cách mà tôi khuyên bạn nên tham gia là tham gia vào một truy vấn con lấy riêng ID mới nhất ( giả sử rằng cột là AUTO_INCREMENT ed ) cho mỗi store_ID .

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT  store_ID, MAX(ID) max_ID
            FROM    tableName
            GROUP BY store_ID
        ) b ON a.store_ID = b.store_ID AND
                a.ID = b.max_ID

để có hiệu suất tốt hơn, hãy đảm bảo có chỉ mục trên các cột sau:IDstore_id .

CẬP NHẬT 1

nếu bạn muốn có giới hạn cho mọi bản ghi, hãy sử dụng phần này bên dưới,

SELECT ID, product_Name, store_ID
FROM   tableName a
WHERE
  (
     SELECT COUNT(*) 
     FROM   tableName b
     WHERE  b.store_ID = a.store_ID AND b.ID >= a.ID
  ) <= 2;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Câu lệnh MySQL mất hơn phút để thực thi

  2. Cách hiển thị đối chiếu của một cột trong MySQL

  3. JSON_TYPE () - Nhận loại Giá trị JSON trong MySQL

  4. Node.js không thể xác thực với MySQL 8.0

  5. Cách chọn N dòng hàng đầu cho mỗi nhóm trong MySQL