MDL-62384 mod_data: Update sql to improve performance.
authorAdrian Greeve <adrian@moodle.com>
Fri, 11 May 2018 00:28:25 +0000 (08:28 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Fri, 11 May 2018 01:15:28 +0000 (09:15 +0800)
mod/data/classes/privacy/provider.php

index e07665b..b2c36a8 100644 (file)
@@ -105,9 +105,10 @@ class provider implements
             INNER JOIN {modules} m ON m.id = cm.module AND m.name = :modname
             INNER JOIN {data} d ON d.id = cm.instance
             INNER JOIN {data_records} dr ON dr.dataid = d.id
-            LEFT JOIN {comments} com ON com.commentarea=:commentarea and com.itemid = dr.id
-            LEFT JOIN {rating} r ON r.contextid = c.id AND r.itemid  = dr.id AND r.component = :moddata AND r.ratingarea = :ratingarea
-                 WHERE dr.userid = :userid OR com.userid = :userid1 OR r.userid = :userid2";
+             LEFT JOIN {comments} com ON com.commentarea=:commentarea and com.itemid = dr.id AND com.userid = :userid1
+             LEFT JOIN {rating} r ON r.contextid = c.id AND r.itemid  = dr.id AND r.component = :moddata
+                       AND r.ratingarea = :ratingarea AND r.userid = :userid2
+                 WHERE dr.userid = :userid OR com.id IS NOT NULL OR r.id IS NOT NULL";
 
         $params = [
             'modname'       => 'data',