diff options
author | Dries Buytaert <dries@buytaert.net> | 2003-07-12 22:21:55 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2003-07-12 22:21:55 +0000 |
commit | 22b6d2f30cb1d5a0e7b4f1385ddba79e59dc0b34 (patch) | |
tree | 68745484c801b5b3155f8ac068140a0a74f0d558 /modules/tracker/tracker.module | |
parent | d5cdbcd6444e9d36db64c1f80a70611f779ede94 (diff) | |
download | brdo-22b6d2f30cb1d5a0e7b4f1385ddba79e59dc0b34.tar.gz brdo-22b6d2f30cb1d5a0e7b4f1385ddba79e59dc0b34.tar.bz2 |
- Performance improvement: changed a fair amount of "left joins" to "inner
joins". Patch by Gerhard.
Diffstat (limited to 'modules/tracker/tracker.module')
-rw-r--r-- | modules/tracker/tracker.module | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/modules/tracker/tracker.module b/modules/tracker/tracker.module index 1e9594baa..f0b5f8153 100644 --- a/modules/tracker/tracker.module +++ b/modules/tracker/tracker.module @@ -25,20 +25,20 @@ function tracker_link($type) { function tracker_posts($id = 0) { if ($id) { - $sresult = pager_query("SELECT n.nid, n.title, n.type, n.changed, n.uid, u.name, MAX(GREATEST(n.changed, c.timestamp)) AS last_activity FROM {node} n LEFT JOIN {comments} c ON n.nid = c.nid LEFT JOIN {users} u ON n.uid = u.uid WHERE n.uid = '". check_query($id) ."' AND n.status = 1 GROUP BY n.nid, n.title, n.type, n.changed, n.uid, u.name ORDER BY last_activity DESC", 10, 0, "SELECT COUNT(nid) FROM {node} WHERE status = 1 AND uid = '". check_query($id) ."'"); + $sresult = pager_query("SELECT n.nid, n.title, n.type, n.changed, n.uid, u.name, MAX(GREATEST(n.changed, c.timestamp)) AS last_activity FROM {node} n INNER JOIN {comments} c ON n.nid = c.nid INNER JOIN {users} u ON n.uid = u.uid WHERE n.uid = '". check_query($id) ."' AND n.status = 1 GROUP BY n.nid, n.title, n.type, n.changed, n.uid, u.name ORDER BY last_activity DESC", 10, 0, "SELECT COUNT(nid) FROM {node} WHERE status = 1 AND uid = '". check_query($id) ."'"); } else { - $sresult = pager_query("SELECT n.nid, n.title, n.type, n.changed, n.uid, u.name, MAX(GREATEST(n.changed, c.timestamp)) AS last_activity FROM {node} n LEFT JOIN {comments} c ON n.nid = c.nid LEFT JOIN {users} u ON n.uid = u.uid WHERE n.status = 1 GROUP BY n.nid, n.title, n.type, n.changed, n.uid, u.name ORDER BY last_activity DESC", 10, 0, "SELECT COUNT(nid) FROM {node} WHERE status = 1"); + $sresult = pager_query("SELECT n.nid, n.title, n.type, n.changed, n.uid, u.name, MAX(GREATEST(n.changed, c.timestamp)) AS last_activity FROM {node} n INNER JOIN {comments} c ON n.nid = c.nid INNER JOIN {users} u ON n.uid = u.uid WHERE n.status = 1 GROUP BY n.nid, n.title, n.type, n.changed, n.uid, u.name ORDER BY last_activity DESC", 10, 0, "SELECT COUNT(nid) FROM {node} WHERE status = 1"); } $header = array(t("Type"), t("Title"), t("Author")); while ($node = db_fetch_object($sresult)) { if ($id) { - $cresult = db_query("SELECT c.*, u.name FROM {comments} c LEFT JOIN {users} u ON c.uid = u.uid WHERE c.uid = %d AND c.nid = %d AND c.status = 0 ORDER BY cid DESC", $id, $node->nid); + $cresult = db_query("SELECT c.*, u.name FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.uid = %d AND c.nid = %d AND c.status = 0 ORDER BY c.cid DESC", $id, $node->nid); } else { - $cresult = db_query("SELECT c.*, u.name FROM {comments} c LEFT JOIN {users} u ON c.uid = u.uid WHERE c.nid = %d AND c.status = 0 ORDER BY cid DESC", $node->nid); + $cresult = db_query("SELECT c.*, u.name FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.nid = %d AND c.status = 0 ORDER BY c.cid DESC", $node->nid); } $type = ucfirst(module_invoke($node->type, "node", "name")); |