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

如何通过多表关联查询过滤,生成排除指定用户已预订活动的视图

实现SQL语句

默认两张表命名规则:活动表为events(存储活动基础信息,含EventID/EventName/City字段),预订表为bookings(存储用户预订记录,含UserID/EventID关联字段),可直接用以下语句创建符合要求的视图:

写法1(推荐,NOT EXISTS性能更稳定,无NULL值异常问题)

CREATE VIEW user_available_events AS
SELECT 
  e.EventID,
  e.EventName,
  e.City
FROM events e
WHERE NOT EXISTS (
  SELECT 1
  FROM bookings b
  WHERE b.EventID = e.EventID
    AND b.UserID = 4
);

写法2(NOT IN写法,逻辑更直观)

CREATE VIEW user_available_events AS
SELECT EventID, EventName, City
FROM events
WHERE EventID NOT IN (
  SELECT DISTINCT EventID
  FROM bookings
  WHERE UserID = 4
);

逻辑说明

  1. 先通过子查询筛选出用户ID为4的用户已经预订的所有活动ID
  2. 从活动主表中排除上述活动ID对应的记录,查询剩余活动的三个要求字段
  3. 最终将查询结果封装为视图即可,视图名可根据实际业务需求修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:18:02