optimized query for label counters

This commit is contained in:
Roland Angerer 2013-09-17 12:05:13 +02:00
parent 1357a263be
commit 4d8f4c5989
1 changed files with 2 additions and 5 deletions

View File

@ -1557,13 +1557,10 @@
$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");