虚拟表查询全指南
一、概念与类型
二、MySQL 中的查询方法
CREATE VIEW v_active_emp AS
SELECT id, name, dept FROM emp WHERE active = 1;
SELECT name, dept FROM v_active_emp WHERE dept = 'Engineering';
SELECT dept, AVG(sal) AS avg_sal
FROM (
SELECT dept, sal FROM emp
) AS t
GROUP BY dept;
CREATE TEMPORARY TABLE tmp_sales AS
SELECT region, SUM(amount) AS sum_amt FROM sales GROUP BY region;
SELECT * FROM tmp_sales WHERE sum_amt > 10000;
UPDATE v_active_emp SET sal = sal * 1.1 WHERE name = 'Alice';
是否可更新取决于视图定义与底层约束。三、TDengine 中的查询方法
-- 普通虚拟表
CREATE VTABLE v1 (ts TIMESTAMP, temperature FLOAT)
USING stb1 (ts_col) TAGS ('room1');
-- 基于虚拟超级表创建虚拟子表
CREATE VTABLE v2 (ts TIMESTAMP, humidity FLOAT)
USING vstb (ts_col)
TAGS ('floor1');
-- 查询(与普通表一致)
SELECT ts, temperature FROM v1 WHERE ts BETWEEN '2025-01-01' AND '2025-01-02';
-- 两列来自不同表,时间戳并集决定输出行
SELECT ts, t1.temperature, t2.humidity
FROM v1 AS t1
JOIN v2 AS t2 ON t1.ts = t2.ts;
四、常见场景与性能建议
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。