Index: trunk/wp-includes/meta.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- trunk/wp-includes/meta.php	(revision 23992)
+++ trunk/wp-includes/meta.php	(revision )
@@ -712,6 +712,7 @@
 		$where = array();
 
 		$key_only_queries = array();
+		$joined_keys = array();
 		$queries = array();
 
 		// Split out the meta_key only queries (we can only do this for OR)
@@ -762,19 +763,32 @@
 			$i = count( $join );
 			$alias = $i ? 'mt' . $i : $meta_table;
 
+			if ( isset( $joined_keys[ $meta_key ] ) )
+				$alias = $joined_keys[ $meta_key ];
+
 			if ( 'NOT EXISTS' == $meta_compare ) {
+				if ( !isset( $joined_keys[ $meta_key ] ) ) {
+					$joined_keys[ $meta_key ] = $alias;
+
-				$join[$i]  = "LEFT JOIN $meta_table";
-				$join[$i] .= $i ? " AS $alias" : '';
-				$join[$i] .= " ON ($primary_table.$primary_id_column = $alias.$meta_id_column AND $alias.meta_key = '$meta_key')";
+					$join[$i]  = "LEFT JOIN $meta_table";
+					$join[$i] .= $i ? " AS $alias" : '';
+					$join[$i] .= " ON ($primary_table.$primary_id_column = $alias.$meta_id_column AND $alias.meta_key = '$meta_key')";
+				}
 
 				$where[$k] = ' ' . $alias . '.' . $meta_id_column . ' IS NULL';
 
 				continue;
 			}
 
+			$joined_keys[ $meta_key ] = $meta_id_column;
+
+			if ( !isset( $joined_keys[ $meta_key ] ) ) {
+				$joined_keys[ $meta_key ] = $alias;
+
-			$join[$i]  = "INNER JOIN $meta_table";
-			$join[$i] .= $i ? " AS $alias" : '';
-			$join[$i] .= " ON ($primary_table.$primary_id_column = $alias.$meta_id_column)";
+                $join[$i]  = "INNER JOIN $meta_table";
+                $join[$i] .= $i ? " AS $alias" : '';
+                $join[$i] .= " ON ($primary_table.$primary_id_column = $alias.$meta_id_column)";
+			}
 
 			$where[$k] = '';
 			if ( !empty( $meta_key ) )
