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

Câu hỏi về hiệu suất truy vấn SQL (nhiều truy vấn phụ)

Nếu "hoạt động" là đầu tiên theo thứ tự bảng chữ cái, bạn sẽ có thể giảm các truy vấn con thành:

SELECT p.id, r.status, r.title
FROM page AS p
    INNER JOIN page_revision as r ON r.pageId = p.id AND 
        r.id = (SELECT r2.id 
                FROM page_revision as r2 
                WHERE r2.pageId = r.pageId 
                ORDER BY r2.status, r2.id DESC
                LIMIT 1)

Nếu không, bạn có thể thay thế ORDER BY dòng bằng

ORDER BY CASE r2.status WHEN 'active' THEN 0 ELSE 1 END, r2.id DESC

Tất cả những điều này đều xuất phát từ những giả định của tôi về SQL Server, quãng đường của bạn với MySQL có thể khác nhau.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có thể cập nhật / chọn từ một bảng trong một truy vấn không?

  2. Sắp xếp các bản ghi truy vấn SQL theo tần suất

  3. # 1075 - Định nghĩa bảng không chính xác; chỉ có thể có một cột tự động và nó phải được xác định là một khóa

  4. ODBC / MYSQL Chèn một kết quả truy vấn từ ODBC vào một kho dữ liệu trong MYSQL

  5. đăng ký php vào cơ sở dữ liệu