Fix for sub queries.
authorSteve Sutton <steve@gaslightmedia.com>
Fri, 14 Apr 2017 19:26:00 +0000 (15:26 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Fri, 14 Apr 2017 19:26:00 +0000 (15:26 -0400)
Breaking the sub queries into join

setup/adminHooks.php

index 1ae50c8..8d803e0 100644 (file)
@@ -83,17 +83,13 @@ add_filter('glm-member-db-admin-search-query', function() {
                 $field_name = preg_replace( '/[ -]/', '_', strtolower( $field['field_name'] ) );
                 if ( isset( $_REQUEST[$field_name] ) && filter_var( $_REQUEST[$field_name], FILTER_VALIDATE_BOOLEAN ) ) {
                     $queryParts[] = " T.id IN (
-                        SELECT distinct member
-                          FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info mi
-                         WHERE mi.id IN (
-                        SELECT ref_dest
-                          FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data
-                         WHERE field_data = 'Yes'
-                           AND field_id = (SELECT id
-                                             FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields
-                                            WHERE field_name = '" . esc_sql( $field['field_name'] ) . "')
-                        )
-                    )";
+                        SELECT mi.member
+                          FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info mi, " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data cfd
+                         WHERE cfd.ref_dest = mi.id
+                           AND cfd.field_data = 'Yes'
+                           AND cfd.field_id = (SELECT id
+                                           FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields
+                                          WHERE field_name = '" . esc_sql( $field['field_name'] ) . "'))";
                 }
                 break;
             }