返回介绍

创建高级连接

发布于 2024-08-17 15:49:00 字数 5999 浏览 0 评论 0 收藏 0

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

Customers 表代表顾客信息含有顾客 id cust_id 和 顾客名称 cust_name

cust_idcust_name
cust10andy
cust1ben
cust2tony
cust22tom
cust221an
cust2217hex

Orders 表代表订单信息含有订单号 order_num 和顾客 id cust_id

order_numcust_id
a1cust10
a2cust1
a3cust2
a4cust22
a5cust221
a7cust2217

【问题】使用 INNER JOIN 编写 SQL 语句,检索每个顾客的名称( Customers 表中的 cust_name )和所有的订单号( Orders 表中的 order_num ),最后根据顾客姓名 cust_name 升序返回。

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

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

Orders 表代表订单信息含有订单号 order_num 和顾客 id cust_id

order_numcust_id
a1cust10
a2cust1
a3cust2
a4cust22
a5cust221
a7cust2217

Customers 表代表顾客信息含有顾客 id cust_id 和 顾客名称 cust_name

cust_idcust_name
cust10andy
cust1ben
cust2tony
cust22tom
cust221an
cust2217hex
cust40ace

【问题】检索每个顾客的名称( Customers 表中的 cust_name )和所有的订单号(Orders 表中的 order_num ),列出所有的顾客,即使他们没有下过订单。最后根据顾客姓名 cust_name 升序返回。

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

返回产品名称和与之相关的订单号

Products 表为产品信息表含有字段 prod_id 产品 id、 prod_name 产品名称

prod_idprod_name
a0001egg
a0002sockets
a0013coffee
a0003cola
a0023soda

OrderItems 表为订单信息表含有字段 order_num 订单号和产品 id prod_id

prod_idorder_num
a0001a105
a0002a1100
a0002a200
a0013a1121
a0003a10
a0003a19
a0003a5

【问题】使用外连接(left join、 right join、full join)联结 Products 表和 OrderItems 表,返回产品名称( prod_name )和与之相关的订单号( order_num )的列表,并按照产品名称升序排序。

SELECT prod_name, order_num
FROM Products
LEFT JOIN OrderItems
USING(prod_id)
ORDER BY prod_name

返回产品名称和每一项产品的总订单数

Products 表为产品信息表含有字段 prod_id 产品 id、 prod_name 产品名称

prod_idprod_name
a0001egg
a0002sockets
a0013coffee
a0003cola
a0023soda

OrderItems 表为订单信息表含有字段 order_num 订单号和产品 id prod_id

prod_idorder_num
a0001a105
a0002a1100
a0002a200
a0013a1121
a0003a10
a0003a19
a0003a5

【问题】

使用 OUTER JOIN 联结 Products 表和 OrderItems 表,返回产品名称( prod_name )和每一项产品的总订单数(不是订单号),并按产品名称升序排序。

SELECT prod_name, COUNT(order_num) AS orders
FROM Products
LEFT JOIN OrderItems
USING(prod_id)
GROUP BY prod_name
ORDER BY prod_name

列出供应商及其可供产品的数量

Vendors 表含有 vend_id (供应商 id)

vend_id
a0002
a0013
a0003
a0010

Products 表含有 vend_id (供应商 id)和 prod_id(供应产品 id)

vend_idprod_id
a0001egg
a0002prod_id_iphone
a00113prod_id_tea
a0003prod_id_vivo phone
a0010prod_id_huawei phone

【问题】列出供应商( Vendors 表中的 vend_id )及其可供产品的数量,包括没有产品的供应商。你需要使用 OUTER JOIN 和 COUNT() 聚合函数来计算 Products 表中每种产品的数量,最后根据 vend_id 升序排序。

注意: vend_id 列会显示在多个表中,因此在每次引用它时都需要完全限定它。

SELECT vend_id, COUNT(prod_id) AS prod_id
FROM Vendors
LEFT JOIN Products
USING(vend_id)
GROUP BY vend_id
ORDER BY vend_id

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文