В SQl у нас есть три способа объединения двух таблиц.
Nested Loop (Хорошо, если в одной таблице небольшое количество строк),
Hash Join (Хорошо, если обе таблицы имеют очень большие строки, это делает дорогостоящее формирование хеша в памяти)
Merge Join (Хорошо, когда мы отсортировали данные для присоединения).
Из вашего вопроса кажется, что вы хотите для Nested Loop.
Допустим, t1 имеет 20 строк, t2 имеет 500 строк.
Теперь это будет похоже на
Для каждой строки в t1
Найти строки в t2, где t1.MainId = t2.MainId
Теперь выход этого будет присоединен к t3.
Порядок соединения зависит от Оптимизатора, ожидаемого количества строк и т. Д.