第三章 1-内连接inner joins--Mosh mySQL

本文介绍了如何在SQL中合并数据库表(如订单和顾客表),使用内连接、明确列引用及别名简化查询。练习部分展示了如何通过order_items和product表的连接获取订单详情,强调了订单信息作为基准的重要性。

1.将数据库中的两个表合并在一起,注意主键要一致,因为暂时不涉及outner join ,所以这里的inner join也可以写成join

select *
from orders
inner join customers on orders.customer_id = customers.customer_id

2,order_id和对应的first_name,last_name:

select order_id,first_name,last_name
from orders
inner join customers on orders.customer_id = customers.customer_id

3,Error Code: 1052. Column 'customer_id' in field list is ambiguous   

select order_id,customer_id,first_name,last_name
from orders
inner join customers on orders.customer_id = customers.customer_id

这是因为我们两张表都有customer_id,所以不知道从哪个表选择这个。因此提示列不明确,需要改为orders.customer_id或者customers.customer_id

4,让代码更简单,这里省略了as o,as c

用o表示orders,c表示customers

select order_id,o.customer_id,first_name,last_name
from orders o
join customers c

on o.customer_id = c.customer_id

练习

order_items表,和product表连接,每笔订单都返回product_id和order_id,连同orderitems里面的数量和单价。记得用别名简化代码

为什么用oi呢,因为产品可能价格变动,所以以订单为准

SELECT order_id,oi.product_id,quantity,oi.unit_price
FROM order_items oi
join products p on oi.product_id =p.product_id

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值