Ticket #5179: left_join.diff

File left_join.diff, 5.6 KB (added by ryan, 5 years ago)
  • wp-includes/bookmark.php

     
    112112        } 
    113113        if (!empty($category_query)) { 
    114114                $category_query .= ") AND taxonomy = 'link_category'"; 
    115                 $join = " LEFT JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) LEFT JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id"; 
     115                $join = " INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id"; 
    116116        } 
    117117 
    118118        if (get_option('links_recently_updated_time')) { 
  • wp-includes/query.php

     
    932932                } 
    933933 
    934934                if ( !empty($q['category__in']) ) { 
    935                         $join = " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) "; 
     935                        $join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) "; 
    936936                        $whichcat .= " AND $wpdb->term_taxonomy.taxonomy = 'category' "; 
    937937                        $include_cats = "'" . implode("', '", $q['category__in']) . "'"; 
    938938                        $whichcat .= " AND $wpdb->term_taxonomy.term_id IN ($include_cats) "; 
     
    973973 
    974974                        $q['cat'] = $reqcat; 
    975975 
    976                         $join = " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) "; 
     976                        $join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) "; 
    977977                        $whichcat = " AND $wpdb->term_taxonomy.taxonomy = 'category' "; 
    978978                        $in_cats = array($q['cat']); 
    979979                        $in_cats = array_merge($in_cats, get_term_children($q['cat'], 'category')); 
     
    10151015                } 
    10161016 
    10171017                if ( !empty($q['tag__in']) ) { 
    1018                         $join = " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) "; 
     1018                        $join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) "; 
    10191019                        $whichcat .= " AND $wpdb->term_taxonomy.taxonomy = 'post_tag' "; 
    10201020                        $include_tags = "'" . implode("', '", $q['tag__in']) . "'"; 
    10211021                        $whichcat .= " AND $wpdb->term_taxonomy.term_id IN ($include_tags) "; 
     
    10251025                } 
    10261026 
    10271027                if ( !empty($q['tag_slug__in']) ) { 
    1028                         $join = " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) LEFT JOIN $wpdb->terms ON ($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id) "; 
     1028                        $join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) INNER JOIN $wpdb->terms ON ($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id) "; 
    10291029                        $whichcat .= " AND $wpdb->term_taxonomy.taxonomy = 'post_tag' "; 
    10301030                        $include_tags = "'" . implode("', '", $q['tag_slug__in']) . "'"; 
    10311031                        $whichcat .= " AND $wpdb->terms.slug IN ($include_tags) "; 
     
    10561056                        $taxonomy_field = $item == 'tag_slug__and' ? 'slug' : 'term_id'; 
    10571057 
    10581058                        $q[$item] = array_unique($q[$item]); 
    1059                         $tsql = "SELECT p.ID FROM $wpdb->posts p LEFT JOIN $wpdb->term_relationships tr ON (p.ID = tr.object_id) LEFT JOIN $wpdb->term_taxonomy tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id) LEFT JOIN $wpdb->terms t ON (tt.term_id = t.term_id)"; 
     1059                        $tsql = "SELECT p.ID FROM $wpdb->posts p INNER JOIN $wpdb->term_relationships tr ON (p.ID = tr.object_id) INNER JOIN $wpdb->term_taxonomy tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id) INNER JOIN $wpdb->terms t ON (tt.term_id = t.term_id)"; 
    10601060                        $tsql .= " WHERE tt.taxonomy = '$taxonomy' AND t.$taxonomy_field IN ('" . implode("', '", $q[$item]) . "')"; 
    10611061                        $tsql .= " GROUP BY p.ID HAVING count(p.ID) = " . count($q[$item]); 
    10621062 
  • wp-includes/taxonomy.php

     
    13571357        } 
    13581358 
    13591359        // Get the object and term ids and stick them in a lookup table 
    1360         $results = $wpdb->get_results("SELECT object_id, term_taxonomy_id FROM $wpdb->term_relationships LEFT JOIN $wpdb->posts ON object_id = ID WHERE term_taxonomy_id IN (".join(',', array_keys($term_ids)).") AND post_type = 'post' AND post_status = 'publish'"); 
     1360        $results = $wpdb->get_results("SELECT object_id, term_taxonomy_id FROM $wpdb->term_relationships INNER JOIN $wpdb->posts ON object_id = ID WHERE term_taxonomy_id IN (".join(',', array_keys($term_ids)).") AND post_type = 'post' AND post_status = 'publish'"); 
    13611361        foreach ( $results as $row ) { 
    13621362                $id = $term_ids[$row->term_taxonomy_id]; 
    13631363                ++$term_items[$id][$row->object_id];