Я бы посоветовал проверить ответы в этом вопросе, так как они, кажется, соответствуют вашей конкретной проблеме. https://stackoverflow.com/a/9327678/1213554
Хотя короткая версия такова, что для того, чтобы можно было эффективно выполнить этот запрос к базе данныхЯ боюсь, что может потребоваться реструктуризация.
То, что вы ищете конкретно, невозможно, вам придется использовать UNION, чтобы сделать что-то вроде следующего.Как вы говорите, это займет много времени.
(
SELECT tempData.*
FROM tempData
INNER JOIN institutes
ON institutes.id = tempData.product_id
WHERE tempData.product_type = 'institute'
) UNION (
SELECT tempData.*
FROM tempData
INNER JOIN states
ON states.id = tempData.product_id
WHERE tempData.product_type = 'state'
) UNION (
SELECT tempData.*
FROM tempData
INNER JOIN regions
ON regions.id = tempData.product_id
WHERE tempData.product_type = 'region'
) UNION (
SELECT tempData.*
FROM tempData
INNER JOIN countries
ON countries.id = tempData.product_id
WHERE tempData.product_type = 'country'
)