任务描述
查询每位用户的每个订单购买的商品名称和数量。
本关任务要用到用户表account、订单表orders、订单详情表lineitem,商品表product。
其中orders表结构如下:
account表结构如下:
product表结构如下:
Lineitem表结构如下:
测试如下:
一,join on的理解:
这里很多人都不是很理解
他要查询每个订单购买的商品名称和数量,这里我也对上表的英文翻译一下
语法说明:
内连接可以没有连接条件: 没有on之后的内容,这个时候系统会保留所有结果。
理解:
首先这里第一行应该看的懂吧,有用户名称,订单购买的商品名称和数量,
这个题目对那些英文不好的有些挑战哈
他lineitem中orderid与orders中orderid一样
account中userid与orderid中userid 一样
product中productid与lineitem中itemid一样
这里我截取了没有筛选的情况
####相关知识
为了完成本关任务,你需要掌握:多表查询
语法
SELECT的查询对象由FROM子句指定,其格式为:
FROM 表名1 [ [AS] 别名1 ] [ , 表名2[ [AS] 别名2]] … /查询表/ | JOIN子句 /连接表/ ● 引用单个表的两种方式:
可以用两种方式引用一个表,第一种方式是使用USE语句让一个数据库成为当前数据库,在这种情况下,如果在FROM子句中指定表名,则该表应该属于当前数据库。第二种方式是指定的时候在表名前带上表所属数据库的名字。例如,假设当前数据库是db1,现在要显示数据库db2里的表tb的内容,使用如下语句:
SELECT * FROM db2.tb;
当然,在SELECT关键字后指定列名的时候也可以在列名前带上所属数据库和表的名字,但是一般来说,如果选择的字段在各表中是唯一的,就没有必要去特别指定。