Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pytanie dotyczące wydajności zapytania SQL (wiele podzapytań)

Jeśli „aktywne” jest pierwszym w kolejności alfabetycznej, możesz zredukować podzapytania do:

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)

W przeciwnym razie możesz zamienić wiersz ORDER BY na

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

Wszystko to wynika z moich założeń dotyczących SQL Server, Twój przebieg z MySQL może się różnić.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego zamykamy wynik w Mysqli

  2. mysqldump całą strukturę, ale tylko dane z wybranych tabel w jednym poleceniu

  3. Jaka jest nazwa języka programowania MySQL dla SQL?

  4. MySQL — dlaczego LAST_INSERT_ID() nie działa dla mnie?

  5. Jak znaleźć wiersze z równymi kolumnami?