今天看到一条 sql 查了 1w 多条数据, 然后使用代码做了计算分组后最大 id 的逻辑. 想着优化下, 然后 sql 执行报 Every derived table must have its own alias
这表示子查询需要命名别名才行
例如 from (select * from table2) a 这种, 别名 a 是必要的, 否则报错
之后正确的 sql
-- 264 rows in set (0.05 sec)
select c.id as historyId, c.extract_job_id as packageId, b.package_name as packageName, b.reload_package as reloadPackage from t_ups_rule_apply_info b
inner join ( select id, extract_job_id from t_extract_history a where a.job_status = "SUCCEEDED"
and a.extract_job_id in (
select package_id from t_ups_rule_apply_info where end_cron_date >= '2022-03-08 00:00:00') group by a.extract_job_id) c -- 注意这里的别名 c, 如果没有则会报错
on b.package_id = c.extract_job_id
order by b.package_id desc