描述
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
复制
《SQL必知必会(第5版)》独家授权
答案
进行简单的内联,然后根据名称进行排序即可
select t1.cust_name,t2.order_num
from Customers t1
inner join Orders t2 on t1.cust_id=t2.cust_id
order by t1.cust_name asc
SQL查询:使用INNERJOIN合并顾客和订单信息,

文章提供了如何使用SQL的INNERJOIN操作来合并两个表——Customers和Orders,以获取每个顾客的名称及其对应的订单号。查询结果按照顾客姓名升序排列。示例数据和查询语句展示了具体的操作方法。
557

被折叠的 条评论
为什么被折叠?



