背景:在进行联表查询时,出现了Every derived table must have its own alias的错误。
错误代码:
SELECT t1.id FROM zhfw_service_reply t1
JOIN(
SELECT id FROM zhfw_service_theme t3 WHERE
updated_time < #{time}
AND section_code = 'service'
) on t3.id = t1.theme_id
原因:一时疏忽,漏了表的别名。查询产生新的表每一个派生出来的表都必须有一个自己的别名。即JOIN的结果需要一个新的名字。改为如下:
SELECT t1.id FROM zhfw_service_reply t1
JOIN(
SELECT id FROM zhfw_service_theme WHERE
updated_time < #{time}
AND section_code = 'service'
)t3 on t3.id = t1.theme_id
注意t3的位置。