临时表示例
临时表示例
CREATE TEMPORARY TABLE tmp_user_total (
user_id BIGINT PRIMARY KEY,
total DECIMAL(12,2)
);
INSERT INTO tmp_user_total
SELECT user_id, SUM(amount)
FROM orders
GROUP BY user_id;
SELECT u.name, t.total
FROM users u
JOIN tmp_user_total t ON t.user_id = u.id;| CTE | 单语句作用域;可读性好;物化与否由优化器决定 |
|---|---|
| 临时表 | 会话级;可建索引、可 ANALYZE;适合复用的大中间结果 |
| 派生表 | 只出现一次、逻辑简单的子查询 |