#NEWLINE# def test_outerjoin_where_x2_t1t2t3( self ) : #NEWLINE# #INDENT# 'Outer joins t1->t2,t3, where on t1, t2 and t3.' #NEWLINE# for criteria in ( ( t2 . c . t2_id == t3 . c . t2_id ) , ( t3 . c . t2_id == t2 . c . t2_id ) ) : #NEWLINE# #INDENT# expr = select ( [ t1 . c . t1_id , t2 . c . t2_id , t3 . c . t3_id ] , and_ ( ( t1 . c . name == 't1 #10' ) , ( t2 . c . name == 't2 #20' ) , ( t3 . c . name == 't3 #30' ) ) , from_obj = [ t1 . outerjoin ( t2 , ( t1 . c . t1_id == t2 . c . t1_id ) ) . outerjoin ( t3 , criteria ) ] ) #NEWLINE# self . assertRows ( expr , [ ( 10 , 20 , 30 ) ] ) #NEWLINE# expr = select ( [ t1 . c . t1_id , t2 . c . t2_id , t3 . c . t3_id ] , and_ ( ( t1 . c . t1_id < 19 ) , ( t2 . c . t2_id < 29 ) , ( t3 . c . t3_id < 39 ) ) , from_obj = [ t1 . outerjoin ( t2 , ( t1 . c . t1_id == t2 . c . t1_id ) ) . outerjoin ( t3 , criteria ) ] ) #NEWLINE# self . assertRows ( expr , [ ( 10 , 20 , 30 ) ] )