Well I don't understand your question as much, but from the title of the question I could answer you that.
You want to join 3 tables and choose 2 columns of table2, 1 column from table3
So here:
Assume the $collection
is the resource model collection of the table 1.
We have
$collection->getSelect()
->joinLeft(
['table2' => $collection->getTable('table2')],
'main_table.id = table2.custom_id',
[
'table2_id' => 'table2.id',
'table2_custom_id' => 'table2.custom_id'
]
)
->joinLeft(
['table3' => $collection->getTable('table3')],
'table2.id = table3.id',
[
'table3_custom_field' => 'table3.custom_field'
]
);