我建议检查这个问题的答案,因为它们似乎与您的具体问题相符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'
)