2016-07-07 18 views
-1

Ich habe Abfragemysql LEFT JOIN Abfrage optimieren

SELECT P.*, COUNT(L.to) AS likes, U.name AS ownerName, U.username AS ownerUsername, 
    U.picture AS ownerPicture 
FROM sn_posts P LEFT JOIN sn_users AS U 
    ON U.id = P.ownerID 
LEFT JOIN sn_likes AS L 
    ON L.to = P.id 
WHERE (P.ownerID = 69) 
GROUP BY P.id 
ORDER BY P.id DESC 

es nimmt - 0,3337 Sekunden Zeit,

+0

ich meine oben optimieren wollen Abfrage .. –

+1

Hallo, und willkommen in SO - bitte versuchen Sie, weitere Informationen zu liefern - Tabellenstrukturen, Datenmenge, Indizes und so weiter - so Menschen haben tatsächlich eine Möglichkeit, Ihnen zu helfen. –

+0

Sie können den Join-Spalten Indizes hinzufügen, ansonsten sieht Ihre Abfrage für mich OK aus. –

Antwort

0

für die Tabelle einen Index hinzufügen sn_posts mit ownerID Feld kann schöneres

+0

Index bereits auf ownerID, aber Ergebnis zeigt Zeilen 0 - 10 (11 insgesamt, Abfrage dauerte 0,3854 Sekunden) –

+0

versuchen Sie diesen: SELECT P. *, COUNT (L.to) AS mag, U.name AS ownerName, U.username AS ownerUsername, U.picture AS ownerPicture FROM sn_posts P LEFT JOIN sn_users AS U ON U.id = P.ownerID UND P.ownerID = 69 LEFT JOIN sn_likes AS L ON L.to P.id = GROUP BY P.id ORDER BY P.id DESC – Joker

+0

falsches Ergebnis ... –