题解 | #返回产品名称和与之相关的订单号#
返回产品名称和与之相关的订单号
http://www.nowcoder.com/practice/c369a759436a4e8b80baa9c39e9adf18
题目分析
- 首先,产品名称与订单号是1对多的关系,即一个产品可以对应多个订单;
- 查询结果中,产品名称需要全部显示,订单号唯一;
方法一:
- 如果采用左外连接,为保证产品名称全部显示,应将Products作为左表。
select prod_name, order_num
from Products p left join OrderItems o on p.prod_id=o.prod_id
order by prod_name;
方法二:
- 如果采用右外连接,为保证产品名称全部显示,应将Products作为连接字段中右边的表。
select prod_name, order_num
from OrderItems o right join Products p on p.prod_id=o.prod_id
order by prod_name;
- 因为
prod_name
和order_num
只在一个表里面存在,所以不需要指明属于哪个表来避免歧义。