sql >> Databasteknik >  >> RDS >> Mysql

SQL-frågeprestandafråga (flera underfrågor)

Om "aktiv" är den första i alfabetisk ordning kan du kanske reducera underfrågor till:

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)

Annars kan du ersätta ORDER BY rad med

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

Dessa kommer alla från mina antaganden om SQL Server, din körsträcka med MySQL kan variera.



  1. Importera text till MySQL:konstigt format

  2. Sqoop på Hadoop:NoSuchMethodError:com.google.common.base.Stopwatch.createStarted()

  3. Tilldela en Select till en variabel i en lagrad procedur

  4. Jag skulle vilja migrera Oralce DB till Amazon Redshift med AWS SCT