SET OPTIMIZER_SWITCH = 'index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,firstmatch=on,loosescan=on,materialization=on,semijoin=off,mrr=on,mrr_cost_based=off,index_condition_pushdown=on'; SET optimizer_join_cache_level = 6; --disable_abort_on_error --disable_warnings --disable_query_log --disable_result_log SET OPTIMIZER_SWITCH = 'index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,firstmatch=on,loosescan=on,materialization=on,semijoin=off,mrr=on,mrr_cost_based=off,index_condition_pushdown=on'; CREATE TABLE C ( pk INTEGER AUTO_INCREMENT, col_int_nokey INTEGER /*! NULL */, col_int_key INTEGER /*! NULL */, col_date_key DATE /*! NULL */, col_date_nokey DATE /*! NULL */, col_time_key TIME /*! NULL */, col_time_nokey TIME /*! NULL */, col_datetime_key DATETIME /*! NULL */, col_datetime_nokey DATETIME /*! NULL */, col_varchar_key VARCHAR(1) /*! NULL */, col_varchar_nokey VARCHAR(1) /*! NULL */, PRIMARY KEY (pk), KEY (col_int_key), KEY (col_date_key), KEY (col_time_key), KEY (col_datetime_key), KEY (col_varchar_key, col_int_key) ); INSERT /*! IGNORE */ INTO C ( col_int_key, col_int_nokey, col_date_key, col_date_nokey, col_time_key, col_time_nokey, col_datetime_key, col_datetime_nokey, col_varchar_key, col_varchar_nokey ) VALUES (2, NULL, NULL, NULL, '11:28:45', '11:28:45', '2004-10-11 18:13:16', '2004-10-11 18:13:16', 'w', 'w'), (9, 7, NULL, NULL, '19:24:11', '19:24:11', '2009-07-25 00:00:00', '2009-07-25 00:00:00', 'k', 'k'), (9, 2, '2002-12-16', '2002-12-16', '00:00:00', '00:00:00', '2008-07-27 00:00:00', '2008-07-27 00:00:00', 't', 't'), (8, 8, '2006-08-28', '2006-08-28', '11:32:06', '11:32:06', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'u', 'u'), (2, 4, '1900-01-01', '1900-01-01', '18:38:59', '18:38:59', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'd', 'd'); CREATE TABLE D ( pk INTEGER AUTO_INCREMENT, col_int_nokey INTEGER /*! NULL */, col_int_key INTEGER /*! NULL */, col_date_key DATE /*! NULL */, col_date_nokey DATE /*! NULL */, col_time_key TIME /*! NULL */, col_time_nokey TIME /*! NULL */, col_datetime_key DATETIME /*! NULL */, col_datetime_nokey DATETIME /*! NULL */, col_varchar_key VARCHAR(1) /*! NULL */, col_varchar_nokey VARCHAR(1) /*! NULL */, PRIMARY KEY (pk), KEY (col_int_key), KEY (col_date_key), KEY (col_time_key), KEY (col_datetime_key), KEY (col_varchar_key, col_int_key) ); INSERT /*! IGNORE */ INTO D ( col_int_key, col_int_nokey, col_date_key, col_date_nokey, col_time_key, col_time_nokey, col_datetime_key, col_datetime_nokey, col_varchar_key, col_varchar_nokey ) VALUES (NULL, 6, '2003-05-12', '2003-05-12', NULL, NULL, '2000-09-12 00:00:00', '2000-09-12 00:00:00', 'r', 'r'), (9, 6, '2004-11-05', '2004-11-05', '13:53:08', '13:53:08', '2001-08-01 08:50:52', '2001-08-01 08:50:52', 't', 't'), (195, 27, '2004-02-21', '2004-02-21', NULL, NULL, '2005-05-06 00:00:00', '2005-05-06 00:00:00', 'o', 'o'), (5, 2, '2001-07-26', '2001-07-26', '11:49:25', '11:49:25', '2007-04-25 05:08:49', '2007-04-25 05:08:49', 'f', 'f'); CREATE TABLE CC ( pk INTEGER AUTO_INCREMENT, col_int_nokey INTEGER /*! NULL */, col_int_key INTEGER /*! NULL */, col_date_key DATE /*! NULL */, col_date_nokey DATE /*! NULL */, col_time_key TIME /*! NULL */, col_time_nokey TIME /*! NULL */, col_datetime_key DATETIME /*! NULL */, col_datetime_nokey DATETIME /*! NULL */, col_varchar_key VARCHAR(1) /*! NULL */, col_varchar_nokey VARCHAR(1) /*! NULL */, PRIMARY KEY (pk), KEY (col_int_key), KEY (col_date_key), KEY (col_time_key), KEY (col_datetime_key), KEY (col_varchar_key, col_int_key) ) AUTO_INCREMENT=10; INSERT /*! IGNORE */ INTO CC ( col_int_key, col_int_nokey, col_date_key, col_date_nokey, col_time_key, col_time_nokey, col_datetime_key, col_datetime_nokey, col_varchar_key, col_varchar_nokey ) VALUES (8, 7, NULL, NULL, '01:27:35', '01:27:35', '2002-02-26 06:14:37', '2002-02-26 06:14:37', 'v', 'v'), (186, 3, '2005-02-15', '2005-02-15', '19:53:05', '19:53:05', '2008-05-26 12:27:10', '2008-05-26 12:27:10', 'm', 'm'), (NULL, 6, NULL, NULL, '19:18:56', '19:18:56', '2004-12-14 16:37:30', '2004-12-14 16:37:30', 'y', 'y'), (2, 92, '2008-11-04', '2008-11-04', '10:55:12', '10:55:12', '2003-02-11 21:19:41', '2003-02-11 21:19:41', 'j', 'j'), (3, 7, '2004-09-04', '2004-09-04', '00:25:00', '00:25:00', '2009-10-18 02:27:49', '2009-10-18 02:27:49', 'd', 'd'), (0, NULL, '2006-06-05', '2006-06-05', '12:35:47', '12:35:47', '2000-09-26 07:45:57', '2000-09-26 07:45:57', 'z', 'z'), (133, 3, '1900-01-01', '1900-01-01', '19:53:03', '19:53:03', NULL, NULL, 'e', 'e'), (1, 5, '1900-01-01', '1900-01-01', '17:53:30', '17:53:30', '2005-11-10 12:40:29', '2005-11-10 12:40:29', 'h', 'h'), (8, 1, '1900-01-01', '1900-01-01', '11:35:49', '11:35:49', '2009-04-25 00:00:00', '2009-04-25 00:00:00', 'b', 'b'), (5, 2, '2005-01-13', '2005-01-13', NULL, NULL, '2002-11-27 00:00:00', '2002-11-27 00:00:00', 's', 's'), (5, NULL, '2006-05-21', '2006-05-21', '06:01:40', '06:01:40', '2004-01-26 20:32:32', '2004-01-26 20:32:32', 'e', 'e'), (8, 1, '2003-09-08', '2003-09-08', '05:45:11', '05:45:11', '2007-10-26 11:41:40', '2007-10-26 11:41:40', 'j', 'j'), (6, 0, '2006-12-23', '2006-12-23', '00:00:00', '00:00:00', '2005-10-07 00:00:00', '2005-10-07 00:00:00', 'e', 'e'), (51, 210, '2006-10-15', '2006-10-15', '00:00:00', '00:00:00', '2000-07-15 05:00:34', '2000-07-15 05:00:34', 'f', 'f'), (4, 8, '2005-04-06', '2005-04-06', '06:11:01', '06:11:01', '2000-04-03 16:33:32', '2000-04-03 16:33:32', 'v', 'v'), (7, 7, '2008-04-07', '2008-04-07', '13:02:46', '13:02:46', NULL, NULL, 'x', 'x'), (6, 5, '2006-10-10', '2006-10-10', '21:44:25', '21:44:25', '2001-04-25 01:26:12', '2001-04-25 01:26:12', 'm', 'm'), (4, NULL, '1900-01-01', '1900-01-01', '22:43:58', '22:43:58', '2000-12-27 00:00:00', '2000-12-27 00:00:00', 'c', 'c'); SELECT SQL_SMALL_RESULT table2 . `col_varchar_key` AS field1 FROM ( C AS table1 INNER JOIN ( ( D AS table2 STRAIGHT_JOIN CC AS table3 ON (( table3 . `pk` = table2 . `col_int_nokey` ) ) ) ) ON (table3 . `col_varchar_key` = table2 . `col_varchar_key` ) ) GROUP BY field1 ORDER BY field1, field1 , field1 LIMIT 1 /* TRANSFORM_OUTCOME_SINGLE_ROW */;