]> git.wh0rd.org - tt-rss.git/commitdiff
optimized query for label counters
authorRoland Angerer <dev@rangerer.at>
Tue, 17 Sep 2013 10:05:13 +0000 (12:05 +0200)
committerRoland Angerer <dev@rangerer.at>
Tue, 17 Sep 2013 10:05:13 +0000 (12:05 +0200)
include/functions.php

index 2f16ea58e74eb23c75bcca6a90c5b9d1b1fb914a..55896b66adcfb6debe44e6d3e07b363bf8b11fd5 100644 (file)
 
                $owner_uid = $_SESSION["uid"];
 
-               $result = db_query("SELECT id,caption,COUNT(u1.unread) AS unread,COUNT(u2.unread) AS total
+               $result = db_query("SELECT id,caption,SUM(CASE WHEN u1.unread = true THEN 1 ELSE 0 END) AS unread, COUNT(u1.unread) AS total
                        FROM ttrss_labels2 LEFT JOIN ttrss_user_labels2 ON
                                (ttrss_labels2.id = label_id)
-                               LEFT JOIN ttrss_user_entries AS u1 ON (u1.ref_id = article_id AND u1.unread = true
-                                       AND u1.owner_uid = $owner_uid)
-                               LEFT JOIN ttrss_user_entries AS u2 ON (u2.ref_id = article_id AND u2.unread = false
-                                       AND u2.owner_uid = $owner_uid)
+                               LEFT JOIN ttrss_user_entries AS u1 ON u1.ref_id = article_id
                                WHERE ttrss_labels2.owner_uid = $owner_uid GROUP BY ttrss_labels2.id,
                                        ttrss_labels2.caption");