案例一
原始使用JOIN ON 进行的表连接如下:
SELECT
o.order_id,
c.first_name,
sh.name AS shipper
FROM orders o
JOIN customers c
ON o.customer_id = c.customer_id
LEFT JOIN shippers sh
ON o.shipper_id = sh.shipper_id
结果如下

现使用USING语句对其进行简化
SELECT
o.order_id,
c.first_name,
sh.name AS shipper
FROM orders o
JOIN customers c
-- ON o.customer_id = c.customer_id
using (customer_id)
LEFT JOIN shippers sh
-- ON o.shipper_id = sh.shipper_id
using (shipper_id)
USING 语句使用的条件是,join两表时,两列的列名和数据必须完全相同时才可以进行使用。
案例二
SELECT *
FROM order_items oi
JOIN order_item_notes oin
ON oi.order_id = oin.order_Id
AND oi.product_id = oin.product_id
简化后
SELECT *
FROM order_items oi
JOIN order_item_notes oin
USING(order_id, product_id)
练习
输出下列表

SELECT
p.date,
c.name AS clint,
p.amount,
pm.name
FROM payments p
JOIN clients c
USING (client_id)
JOIN payment_methods pm
ON p.payment_method = pm.payment_method_id
本文讲解了SQL中JOINON与USING的区别,以及如何通过USING优化表连接查询,涉及订单、客户、支付等表的示例。
4413

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



