Make WordPress Core

Ticket #5179: left_join.diff

File left_join.diff, 5.6 KB (added by ryan, 17 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];