]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Use join instead of exists in SQL
authorMikael Nordfeldth <mmn@hethane.se>
Tue, 29 Mar 2016 12:36:27 +0000 (14:36 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Tue, 29 Mar 2016 12:36:27 +0000 (14:36 +0200)
scripts/upgrade.php

index fa55cfc206d9507367fafa5f7ba35efe7d00131d..f29c9f10bf702a7485b2eaa572313687579cbfc2 100755 (executable)
@@ -171,9 +171,14 @@ function initConversation()
     printfnq("Ensuring all conversations have a row in conversation table...");
 
     $notice = new Notice();
-    $notice->query('select distinct notice.conversation from notice '.
-                   'where notice.conversation is not null '.
-                   'and not exists (select conversation.id from conversation where id = notice.conversation)');
+    $notice->selectAdd();
+    $notice->selectAdd('DISTINCT conversation');
+    $notice->joinAdd(['conversation', 'conversation:id'], 'LEFT');  // LEFT to get the null values for conversation.id
+    $notice->whereAdd('conversation.id IS NULL');
+
+    if ($notice->find()) {
+        printfnq(" fixing {$notice->N} missing conversation entries...");
+    }
 
     while ($notice->fetch()) {