Зачем вам таблица t1?
У продукта могут быть несколько родителей?
Если нет, то t1 избыточна, вам будет достаточно в каждой записи продукта указывать, кто у нее parent.
Если нужно найти самый дешевый продукт в пределах одного родителя, то делается это так:
select *
from (select parent, product,
rank() over (partition by parent order by price) price_rnk
from t2
) a
where price_rnk = 1
Клауза over partition поддерживается mySQL не ниже 8 версии. Самым распространенным версиям (5 или 6, не помню), нужно делать велосипед из пользовательских переменных @.