Предположение: есть запись для каждого продукта с языком = 1
Приведенный ниже код является простым SQL для получения того, что вы хотите.
Еще одна тема, если вы хотите, чтобы поведение, которое вы запрашивали ... потому что вы можете иметь смешанные языки между «имя» и «описание». Я бы разработал его по-другому, если бы одно из двух полей было пустым, я бы по умолчанию вернулся к основному языку (1).
select p.product_id
,coalesce(pl.name, p.name, 'No name') as name
,coalesce(pl.description, p.description, 'No description') as description
from product p
left join product pl on ( pl.product_id = p.product_id and pl.language_id = :language_id)
)
where p.product_id = :product_id and p.language_id = 1