列表

详情


SQL101. 检索每个顾客的名称和所有的订单号(一)

描述

Customers表代表顾客信息含有顾客id cust_id和 顾客名称 cust_name
cust_id cust_name
cust10 andy
cust1 ben
cust2
tony
cust22 tom
cust221 an
cust2217 hex
Orders表代表订单信息含有订单号order_num和顾客id cust_id
order_num cust_id
a1 cust10
a2
cust1
a3 cust2
a4
cust22
a5
cust221
a7 cust2217
【问题】使用 INNER JOIN 编写 SQL语句,检索每个顾客的名称(Customers表中的 cust_name)和所有的订单号(Orders 表中的 order_num),最后根据顾客姓名cust_name升序返回。
【示例结果】返回顾客名称cust_name和订单号order_num
cust_name order_num
an a5
andy a1
ben
a2
hex a7
tom
a4
tony
a3

示例1

输入:

DROP TABLE IF EXISTS `Customers`;
CREATE TABLE IF NOT EXISTS `Customers`(
	cust_id VARCHAR(255) NOT NULL COMMENT '客户id',
	cust_name VARCHAR(255) NOT NULL COMMENT '客户姓名'
);
INSERT `Customers` VALUES ('cust10','andy'),('cust1','ben'),('cust2','tony'),('cust22','tom'),('cust221','an'),('cust2217','hex');

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'
);
INSERT `Orders` VALUES ('a1','cust10'),('a2','cust1'),('a3','cust2'),('a4','cust22'),('a5','cust221'),('a7','cust2217');

输出:

an|a5
andy|a1
ben|a2
hex|a7
tom|a4
tony|a3

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Mysql 解法, 执行用时: 39ms, 内存消耗: 6464KB, 提交时间: 2022-03-07

select a.cust_name cust_name, b.order_num order_num
from Customers a , Orders b
where a.cust_id = b.cust_id
order by cust_name

Mysql 解法, 执行用时: 39ms, 内存消耗: 6476KB, 提交时间: 2022-03-06

SELECT cust_name,order_num
FROM Customers
JOIN Orders
USING(cust_id)
ORDER BY cust_name

Mysql 解法, 执行用时: 40ms, 内存消耗: 6428KB, 提交时间: 2022-06-15

select C.cust_name,O.order_num
    from Customers C 
    inner join Orders O on O.cust_id=C.cust_id
    order by C.cust_name

Mysql 解法, 执行用时: 40ms, 内存消耗: 6440KB, 提交时间: 2022-03-03

select Customers.cust_name,Orders.order_num 
from Customers 
    inner join Orders on Customers.cust_id = Orders.cust_id order by cust_name;

Mysql 解法, 执行用时: 40ms, 内存消耗: 6444KB, 提交时间: 2022-08-05

select cust_name,order_num
from Customers
inner join Orders
on Customers.cust_id=Orders.cust_id
order by cust_name;

上一题