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

Đặt hàng trong nhóm theo?

SELECT  c.*, p.*
FROM    clients AS c
JOIN    programs AS p
ON      p.id = 
        (
        SELECT  pi.id
        FROM    programs AS pi
        WHERE   pi.client_id = c.id
        ORDER BY
                pi.close_date=0 DESC, pi.close_date DESC
        LIMIT 1
        )

Thanx phải truy cập @Quassnoi . Xem câu trả lời của anh ấy trong một câu hỏi tương tự (nhưng phức tạp hơn): mysql-group-by-to-display-new-result

Nếu bạn cập nhật programs bảng và đặt close_date cho tất cả các bản ghi có giá trị bằng 0 đến close_date='9999-12-31' , sau đó là ORDER BY của bạn sẽ đơn giản hơn (và toàn bộ truy vấn nhanh hơn với các chỉ mục thích hợp):

        ORDER BY
                pi.close_date DESC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClassCastException:java.math.BigInteger không thể được truyền sang java.lang.Long khi kết nối với MySQL

  2. tập lệnh mẫu php để phân trang

  3. ĐƯỢC XÁC NHẬN BẰNG 'mật khẩu' trong MySQL

  4. Làm thế nào để chuyển đổi một chuỗi thành hệ thập lục phân trong MySQL - HEX ()

  5. Có thể gọi một thủ tục được lưu trữ MySQL từ Ruby không?