Snowflake SQL เบื้องต้น
George Boorman
Senior Curriculum Manager, DataCamp

NATURAL JOIN จับคู่คอลัมน์โดยอัตโนมัติและตัดคอลัมน์ที่ซ้ำกันออกไวยากรณ์:
SELECT ...
FROM <table_one> [
{
| NATURAL [ { LEFT | RIGHT | FULL } [ OUTER ] ]
}
]
JOIN <table_two>
[ ... ]
NATURAL JOINSELECT *
FROM pizzas AS p
JOIN pizza_type AS t
ON t.pizza_type_id = p.pizza_type_id

NATURAL JOINSELECT *
FROM pizzas AS p
NATURAL JOIN pizza_type AS t

❌ ไม่อนุญาต ❌
select *
FROM pizzas AS p
NATURAL JOIN pizza_type AS t
ON t.pizza_type_id = p.pizza_type_id

$$
✅ อนุญาต ✅
WHERESELECT *
FROM pizzas AS p
NATURAL JOIN pizza_type AS t
WHERE pizza_type_id = 'bbq_ckn'
LATERAL JOIN: อนุญาตให้ subquery ใน FROM อ้างอิงคอลัมน์จากตารางหรือ view ที่อยู่ก่อนหน้าได้ไวยากรณ์:
SELECT ...
FROM <left_hand_expression> , --
LATERAL
(<right_hand_expression>)
left_hand_expression - ตาราง, view, หรือ subquery
right_hand_expression - Inline view หรือ subquery
SELECT p.pizza_id, lat.name, lat.category FROM pizzas AS p,LATERAL -- Keyword LATERAL ( SELECT * FROM pizza_type AS t-- Referencing outer query column: p.pizza_type_id WHERE p.pizza_type_id = t.pizza_type_id) AS lat
SELECT
*
FROM orders AS o,
LATERAL (
-- Subquery calculating total_spent
SELECT
SUM(p.price * od.quantity) AS total_spent
FROM order_details AS od
JOIN pizzas AS p
ON od.pizza_id = p.pizza_id
WHERE o.order_id = od.order_id
) AS t
ORDER BY o.order_id
Snowflake SQL เบื้องต้น