drop table if exists t1,t2,t3,t4; create table t1 (a int); create table t2 (a int, b int); create table t3 (a int); create table t4 (a int, b int); insert into t1 values (2); insert into t2 values (1,7),(2,7); insert into t4 values (4,8),(3,8),(5,9); select (select a from t1), a from t2; (select a from t1) a 2 1 2 2 select (select a from t3), a from t2; (select a from t3) a NULL 1 NULL 2 select * from t2 where t2.a=(select a from t1); a b 2 7 insert into t3 values (6),(7),(3); select * from t2 where t2.b=(select a from t3 order by 1 limit 1); a b 1 7 2 7 select * from t2 where t2.b=(select a from t3 order by 1 limit 1) union (select * from t4 order by a limit 2) limit 3; a b 1 7 2 7 3 8 drop table t1,t2,t3,t4;