MST

星途 面试题库

面试题:SQLite视图的复杂查询与使用

有两个表,`orders`表包含字段`order_id`(整数,主键),`customer_id`(整数),`order_date`(日期);`customers`表包含字段`customer_id`(整数,主键),`customer_name`(文本),`city`(文本)。创建一个视图`recent_orders_by_city`,该视图显示每个城市最近一周内的订单信息,包括`customer_name`,`city`,`order_date`。请描述你创建视图的思路以及写出对应的SQL语句。
22.9万 热度难度
数据库SQLite

知识考点

AI 面试

面试题答案

一键面试

思路:

  1. 首先通过JOIN操作将orders表和customers表关联起来,关联条件是两个表中的customer_id
  2. 然后筛选出order_date在最近一周内的订单。假设当前日期可以通过函数获取(如MySQL中的CURRENT_DATE),那么最近一周的日期范围就是CURRENT_DATE - INTERVAL 1 WEEKCURRENT_DATE
  3. 最后从连接和筛选后的结果中选择需要的字段customer_namecityorder_date来创建视图。

SQL语句(以MySQL为例):

CREATE VIEW recent_orders_by_city AS
SELECT 
    c.customer_name,
    c.city,
    o.order_date
FROM 
    orders o
JOIN 
    customers c ON o.customer_id = c.customer_id
WHERE 
    o.order_date >= CURDATE() - INTERVAL 1 WEEK;