当前位置: 首页 > news >正文

SQL93 返回购买 prod_id 为 BR01 的产品的所有顾客的电子邮件(一)

描述

你想知道订购 BR01 产品的日期,有表OrderItems代表订单商品信息表,prod_id为产品id;Orders表代表订单表有cust_id代表顾客id和订单日期order_date;Customers表含有cust_email 顾客邮件和cust_id顾客id

OrderItems表

prod_id

order_num

BR01

a0001

BR01

a0002

BR02

a0003

BR02

a0013

Orders表

order_num

cust_id

order_date

a0001

cust10

2022-01-01 00:00:00

a0002

cust1

2022-01-01 00:01:00

a0003

cust1

2022-01-02 00:00:00

a0013

cust2

2022-01-01 00:20:00

Customers表代表顾客信息,cust_id为顾客id,cust_email为顾客email

【问题】返回购买 prod_id 为BR01 的产品的所有顾客的电子邮件(Customers 表中的 cust_email),结果无需排序。

提示:这涉及 SELECT 语句,最内层的从 OrderItems 表返回 order_num,中间的从 Customers 表返回 cust_id。

【示例结果】

返回顾客email cust_email

cust_email

cust10@cust.com

cust1@cust.com

【示例解析】

产品id为BR01的订单a0001和a002的下单顾客cust10和cust1的顾客email cust_email分别是:cust10@cust.comcust1@cust.com

示例1

输入:

DROP TABLE IF EXISTS `OrderItems`;

CREATE TABLE IF NOT EXISTS `OrderItems`(

prod_id VARCHAR(255) NOT NULL COMMENT '产品id',

order_num VARCHAR(255) NOT NULL COMMENT '商品订单号'

);

INSERT `OrderItems` VALUES ('BR01','a0001'),('BR01','a0002'),('BR02','a0003'),('BR02','a0013');

DROP TABLE IF EXISTS `Orders`;

CREATE TABLE IF NOT EXISTS `Orders`(

order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',

cust_id VARCHAR(255) NOT NULL COMMENT '顾客id',

order_date TIMESTAMP NOT NULL COMMENT '下单时间'

);

INSERT `Orders` VALUES ('a0001','cust10','2022-01-01 00:00:00'),('a0002','cust1','2022-01-01 00:01:00'),('a0003','cust1','2022-01-02 00:00:00'),('a0013','cust2','2022-01-01 00:20:00');

DROP TABLE IF EXISTS `Customers`;

CREATE TABLE IF NOT EXISTS `Customers`(

cust_id VARCHAR(255) NOT NULL COMMENT '顾客id',

cust_email VARCHAR(255) NOT NULL COMMENT '顾客email'

);

INSERT `Customers` VALUES ('cust10','cust10@cust.com'),('cust1','cust1@cust.com'),('cust2','cust2@cust.com');

复制

输出:

cust10@cust.com

cust1@cust.com

答案

select t3.cust_email 
from Orders t1,OrderItems t2,Customers t3
where t1.order_num=t2.order_num
and t1.cust_id=t3.cust_id
and t2.prod_id='BR01'

总共有3张表,将这3张表关联起来,然后根据要求筛选即可。

http://www.lryc.cn/news/15692.html

相关文章:

  • Git ---- 概述
  • 用 tensorflow.js 做了一个动漫分类的功能(二)
  • 小林coding
  • 操作系统真相还原_第6章:完善内核
  • SmoothNLP新词发现算法的改进实现
  • 实时渲染为什么快,能不能局域网部署点量云
  • 网络游戏该如何防护ddos/cc攻击
  • 项目管理体系1-4练习题1-10答案
  • sHMIctrl智能屏幕使用记录
  • 2.20 crm day01 配置路由router less使用 axios二次封装
  • 【LeetCode】剑指 Offer 10- I. 斐波那契数列 p74 -- Java Version
  • 论文笔记:DropMessage: Unifying Random Dropping for Graph Neural Networks
  • 木鱼cms系统审计小结
  • 软件测试面试-一线大厂必问的测试思维面试题
  • 企业级分布式应用服务 EDAS
  • 弄懂 Websocket 你得知道的这 3 点
  • Appium构架及工作原理
  • 软件架构中“弹性”的多种含义
  • JAVA练习57- 罗马数字转整数、位1的个数
  • C#把图片放到picturebox上的指定位置,PointToClient与PointToScreen解读
  • 【论文笔记】Manhattan-SDF==ZJU==CVPR‘2022 Oral
  • 环翠区中小学生编程挑战赛题解中学组T4:免费超市
  • 关于Oracle树形查询(connect by)的学习笔记
  • 观看课程领奖品!Imagination中国区技术总监全面解读 IMG DXT GPU
  • To_Heart—题解——[SCOI2012]奇怪的游戏
  • Spring Boot Hello World 基于 IDEA 案例详解
  • 基于机器学习的异常检测与分析技术
  • pytest进阶之html测试报告
  • 劳特巴赫仿真测试工具Trace32的基本使用(cmm文件)
  • 盘点四种自动化测试模型实例及优缺点