diff --git wp-includes/meta.php wp-includes/meta.php
index 3caa808..1e235cc 100644
--- wp-includes/meta.php
+++ wp-includes/meta.php
@@ -719,7 +719,16 @@ class WP_Meta_Query {
 			$i = count( $join );
 			$alias = $i ? 'mt' . $i : $meta_table;
 
-			// Set JOIN
+			if ( in_array( strtoupper( $q['compare'] ), array( 'EXISTS', 'NOT EXISTS' ) ) ) {
+				$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 ' . ( ( strtoupper( $q['compare'] ) == 'EXISTS' ) ? 'NOT ' : '' ) . 'NULL';
+
+				continue;
+			}
+
 			$join[$i]  = "INNER JOIN $meta_table";
 			$join[$i] .= $i ? " AS $alias" : '';
 			$join[$i] .= " ON ($primary_table.$primary_id_column = $alias.$meta_id_column)";
