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

如何基于MySQL的Excursion与Bookings表创建指定用户ID的视图

创建指定用户的预订详情视图(MySQL)

嘿,这个需求很明确,咱们直接来搞定它!你需要创建一个关联Bookings和Excursion两张表的视图,同时过滤出指定用户的记录,刚好能得到你想要的结构。

固定用户的直接实现方案

下面是针对某个特定UserID的视图创建语句,替换占位符就能直接使用:

CREATE VIEW UserSpecificBookings AS
SELECT 
    b.`Booking ID`,
    e.`Excursion Name`,
    b.`Excursion ID`,
    b.`Number of People`
FROM 
    Bookings b
INNER JOIN 
    Excursion e ON b.`Excursion ID` = e.`Excursion ID`
WHERE 
    b.`User ID` = '你的目标UserID'; -- 替换成实际要查询的UserID值

代码细节拆解

  • CREATE VIEW UserSpecificBookings AS:给视图起个直观的名字,你也可以改成自己习惯的名称
  • INNER JOIN:通过两张表共有的Excursion ID字段关联,把预订记录和对应的活动名称绑定起来
  • SELECT子句:严格按照你要求的Booking ID | Excursion Name | Excursion ID | Number of People结构选取字段,不用额外别名,字段名完全匹配需求
  • WHERE条件:精准过滤出指定用户的所有预订记录

更灵活的动态查询方案

如果之后需要查询多个用户,固定UserID的视图就不够用了。可以先创建一个包含全量预订详情的基础视图,后续查询时再指定UserID:

-- 先创建基础视图
CREATE VIEW AllBookingDetails AS
SELECT 
    b.`Booking ID`,
    e.`Excursion Name`,
    b.`Excursion ID`,
    b.`Number of People`,
    b.`User ID` -- 保留UserID字段,方便后续动态过滤
FROM 
    Bookings b
INNER JOIN 
    Excursion e ON b.`Excursion ID` = e.`Excursion ID`;

-- 查询时指定任意UserID
SELECT `Booking ID`, `Excursion Name`, `Excursion ID`, `Number of People` 
FROM AllBookingDetails 
WHERE `User ID` = '目标用户ID';

这种方式一次创建视图,后续可以反复查询不同用户的记录,灵活性更高。

小注意事项

  • 因为你的字段名包含空格,必须用反引号`包裹字段名,否则MySQL会抛出语法错误
  • 确保两张表的Excursion ID字段类型完全一致(比如都是INT类型),否则关联时可能出现匹配异常
  • 视图创建完成后,直接执行SELECT * FROM UserSpecificBookings;就能查看指定用户的预订详情啦

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:25:00