# a -> b -> c hive> explain select a.id, b.name from a left outer join b on a.id = b.id left outer join c on a.id = c.id where b.name is not null; No Stats for default@a, Columns: id No Stats for default@b, Columns: name, id No Stats for default@c, Columns: id OK Plan optimized by CBO. Vertex dependency in root stage Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 Reducer 2 File Output Operator [FS_14] Select Operator [SEL_13] (rows=6 width=1) Output:["_col0","_col1"] Merge Join Operator [MERGEJOIN_22] (rows=6 width=1) Conds:RS_9._col0=RS_10._col0(Inner),RS_9._col0=RS_11._col0(Left Outer),Output:["_col0","_col2"] <-Map 1 [SIMPLE_EDGE] SHUFFLE [RS_9] PartitionCols:_col0 Select Operator [SEL_2] (rows=3 width=1) Output:["_col0"] Filter Operator [FIL_19] (rows=3 width=1) predicate:id is not null TableScan [TS_0] (rows=3 width=1) default@a,a,Tbl:COMPLETE,Col:NONE,Output:["id"] <-Map 3 [SIMPLE_EDGE] SHUFFLE [RS_10] PartitionCols:_col0 Select Operator [SEL_5] (rows=3 width=3) Output:["_col0","_col1"] Filter Operator [FIL_20] (rows=3 width=3) predicate:(name is not null and id is not null) TableScan [TS_3] (rows=3 width=3) default@b,b,Tbl:COMPLETE,Col:NONE,Output:["id","name"] <-Map 4 [SIMPLE_EDGE] SHUFFLE [RS_11] PartitionCols:_col0 Select Operator [SEL_8] (rows=3 width=2) Output:["_col0"] Filter Operator [FIL_21] (rows=3 width=2) predicate:id is not null TableScan [TS_6] (rows=3 width=2) default@c,c,Tbl:COMPLETE,Col:NONE,Output:["id"] Time taken: 0.207 seconds, Fetched: 43 row(s) # a -> c -> b hive> explain select a.id, b.name from a left outer join c on a.id = c.id left outer join b on a.id = b.id where b.name is not null; No Stats for default@a, Columns: id No Stats for default@c, Columns: id No Stats for default@b, Columns: name, id OK Plan optimized by CBO. Vertex dependency in root stage Map 1 <- Map 2 (BROADCAST_EDGE), Map 3 (BROADCAST_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 Map 1 File Output Operator [FS_14] Select Operator [SEL_13] (rows=6 width=1) Output:["_col0","_col1"] Map Join Operator [MAPJOIN_22] (rows=6 width=1) Conds:SEL_2._col0=RS_10._col0(Left Outer),SEL_2._col0=RS_11._col0(Inner),HybridGraceHashJoin:true,Output:["_col0","_col3"] <-Map 2 [BROADCAST_EDGE] BROADCAST [RS_10] PartitionCols:_col0 Select Operator [SEL_5] (rows=3 width=2) Output:["_col0"] Filter Operator [FIL_20] (rows=3 width=2) predicate:id is not null TableScan [TS_3] (rows=3 width=2) default@c,c,Tbl:COMPLETE,Col:NONE,Output:["id"] <-Map 3 [BROADCAST_EDGE] BROADCAST [RS_11] PartitionCols:_col0 Select Operator [SEL_8] (rows=3 width=3) Output:["_col0","_col1"] Filter Operator [FIL_21] (rows=3 width=3) predicate:(name is not null and id is not null) TableScan [TS_6] (rows=3 width=3) default@b,b,Tbl:COMPLETE,Col:NONE,Output:["id","name"] <-Select Operator [SEL_2] (rows=3 width=1) Output:["_col0"] Filter Operator [FIL_19] (rows=3 width=1) predicate:id is not null TableScan [TS_0] (rows=3 width=1) default@a,a,Tbl:COMPLETE,Col:NONE,Output:["id"] Time taken: 0.197 seconds, Fetched: 40 row(s)