You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于tableB内容从tableA创建满足筛选要求的视图

视图创建实现方案

以下实现默认两个表的课程名称字段均为course_name,如果实际字段名不同可自行替换。

1. 筛选包含tableB中存在的课程的视图

优先使用内关联实现,性能优于IN子查询,视图会自动同步tableB的最新更新内容,无需手动刷新:

CREATE VIEW v_course_included AS
SELECT a.*
FROM tableA a
INNER JOIN tableB b 
ON a.course_name = b.course_name;

如果tableB存在重复的课程名称,可以加DISTINCT避免返回重复的课程记录:

CREATE VIEW v_course_included AS
SELECT DISTINCT a.*
FROM tableA a
INNER JOIN tableB b 
ON a.course_name = b.course_name;

2. 筛选排除tableB中存在的课程的视图

优先使用NOT EXISTS实现,大数据量下性能优于LEFT JOIN + IS NULL的写法:

CREATE VIEW v_course_excluded AS
SELECT a.*
FROM tableA a
WHERE NOT EXISTS (
    SELECT 1 FROM tableB b WHERE b.course_name = a.course_name
);

也可以根据使用习惯选择左关联写法:

CREATE VIEW v_course_excluded AS
SELECT a.*
FROM tableA a
LEFT JOIN tableB b 
ON a.course_name = b.course_name
WHERE b.course_name IS NULL;
注意事项
  • 需确保两个表的course_name字段的字符集、排序规则完全一致,避免隐式转换导致匹配失败或性能下降
  • 普通视图本身不存储数据,每次查询时都会实时读取tableA和tableB的最新内容,完全适配tableB不定期更新的需求,无需额外维护

内容的提问来源于stack exchange,提问作者Cookie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 01:24:00