Example (ang practice database para sa buong course)
Gumagamit ang maliit na shop na ito ng apat na table. Si customer 4 ay inirekomenda ni customer 2 (gagamitin sa lesson 2). Si Eva ay walang city at walang order.
CREATE TABLE customers (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
city TEXT,
referred_by INTEGER REFERENCES customers(id)
);
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
category TEXT,
price REAL
);
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
customer_id INTEGER REFERENCES customers(id),
order_date TEXT,
status TEXT
);
CREATE TABLE order_items (
order_id INTEGER REFERENCES orders(id),
product_id INTEGER REFERENCES products(id),
quantity INTEGER,
PRIMARY KEY (order_id, product_id)
);
INSERT INTO customers VALUES
(1,'Ana','Toronto',NULL), (2,'Ben','Hamilton',1), (3,'Chloe','Ottawa',1),
(4,'Dev','Toronto',2), (5,'Eva',NULL,NULL);
INSERT INTO products VALUES
(1,'Notebook','Paper',12.5), (2,'Pen set','Writing',8.0), (3,'Backpack','Bags',45.0),
(4,'Marker pack','Writing',15.0), (5,'Desk lamp','Home',30.0);
INSERT INTO orders VALUES
(1,1,'2026-09-12','paid'), (2,1,'2026-10-03','paid'), (3,2,'2026-10-05','paid'),
(4,3,'2026-10-07','refunded'), (5,1,'2026-10-09','paid'), (6,2,'2026-11-02','paid'),
(7,4,'2026-11-04','paid');
INSERT INTO order_items VALUES
(1,1,2),(1,2,1),(2,2,3),(3,3,1),(3,1,1),(4,1,2),(5,3,1),(5,4,2),(6,4,1),(7,3,2),(7,2,1);
Example (apat na table, isang tanong: ano ang binili ng bawat customer, at magkano ang halaga ng bawat linya?)
SELECT o.id AS order_id, c.name AS customer, p.name AS product,
oi.quantity, p.price * oi.quantity AS line_total
FROM orders o
JOIN customers c ON c.id = o.customer_id
JOIN order_items oi ON oi.order_id = o.id
JOIN products p ON p.id = oi.product_id
ORDER BY o.id, p.name;
Nagbabalik ito ng 11 na row. Ang unang tatlo ay: (1, Ana, Notebook, 2, 25.0), (1, Ana, Pen set, 1, 8.0), (2, Ana, Pen set, 3, 24.0).
Revenue kada customer mula sa parehong apat na table:
SELECT c.name, SUM(p.price * oi.quantity) AS revenue
FROM customers c
JOIN orders o ON o.customer_id = c.id
JOIN order_items oi ON oi.order_id = o.id
JOIN products p ON p.id = oi.product_id
GROUP BY c.id, c.name
ORDER BY revenue DESC;
Resulta: Ana 132.0, Dev 98.0, Ben 72.5, Chloe 25.0. Wala si Eva dahil tinatanggal ng karaniwang JOIN ang mga customer na walang order.
ClaudeStuck? Copy a ready-made prompt for Claude
Copy this, open Claude, paste it, and Claude will walk you through the lesson step by step.
For a grown-up: Claude is for adults (18+). Copy this, paste it into Claude, and use the answer to explain the lesson to your child.
I'm learning "SQL Joins & Analysis: joins, grouping at subqueries" on The Future Market. Lesson 1: "Bago ka magsimula, at pag-join ng tatlo o apat na table".
What the lesson teaches:
- Bago ang course na ito: SQL Basics (course 7.4). Dapat alam mo na ang SELECT, WHERE, GROUP BY, JOIN at LEFT JOIN. Ang course na ito ay nakabatay sa mga iyon.
- Ang totoong data ay hinahati sa ilang table para walang tina-type nang dalawang beses. Para masagot ang isang tanong, madalas kailangan mo ang tatlo o apat na table.
- Mag-join ng isang table sa bawat pagkakataon. Ang bawat JOIN ... ON ay nag-uugnay sa bagong table sa table na nasa query na.
- Ang table alias ay maikling palayaw: FROM orders o. Pinapanatiling nababasa ng mga alias ang mahahabang query at kinakailangan ang mga ito kapag dalawang beses mong ginamit ang parehong table (lesson 2).
- Kapag dalawang table ang may column na magkapareho ang pangalan (tulad ng id o name), isulat ang alias.column para malaman ng SQL kung alin ang tinutukoy mo.
- Ang isang order ay maaaring maglaman ng maraming produkto at ang isang produkto ay maaaring nasa maraming order. Ang many-to-many na ugnayang ito ay nangangailangan ng maliit na table sa gitna, na tinatawag dito na order_items. Ang primary key nito ay ang pares na (order_id, product_id).
The exercise I'm working on:
Sumulat ng query na nagpapakita ng pangalan ng bawat produkto kasama ang kabuuang bilang ng yunit na naibenta (SUM ng quantity), mula sa products at order_items. Tiyaking umaabot sa 17 ang kabuuan ng mga yunit (ang kabuuan ng lahat ng quantity).
I'm stuck. Please:
1. Explain the main idea in plain, simple words with one everyday example.
2. Walk me through the exercise one small step at a time. Ask me what I've done so far before giving the next step.
3. Don't just give me the final answer. Help me do it myself, and check my work when I share it.
I'm a parent helping my child (about 8 years old) with a lesson called "Bago ka magsimula, at pag-join ng tatlo o apat na table" from the course "SQL Joins & Analysis: joins, grouping at subqueries".
Here's what the lesson says:
Isipin ang isang paaralan. Ang isang listahan ay nagsasabi kung sino ang mga estudyante. Ang isa pa ay nagsasabi kung anong mga klase ang kinuha nila. Ang pangatlong listahan ay nagsasabi kung tungkol saan ang bawat klase. Para masagot ang "aling estudyante ang kumuha ng aling subject", pinagtatabi mo ang mga listahan at pinagtutugma ang mga numero. Ang join ang gumagawa ng pagtutugmang iyon para sa iyo.
The activity:
Sumulat ng query na nagpapakita ng pangalan ng bawat produkto kasama ang kabuuang bilang ng yunit na naibenta (SUM ng quantity), mula sa products at order_items. Tiyaking umaabot sa 17 ang kabuuan ng mga yunit (ang kabuuan ng lahat ng quantity).
Please explain this so an 8-year-old understands: short sentences, a fun everyday example, and no hard words.
Then give me 3 simple questions I can ask my child to check they understood, and a way to do the activity together, one tiny step at a time.