الدرس 1 من 10
الربط بين جدولين
- 13 دقيقة
- 5 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
INNER JOIN
01
الشرح
القاعدة الجيّدة لا تكرّر اسم العميل في كل طلب؛ تحفظه مرّة في customers، والطلب يحمل رقمه فقط في customer_id.
JOIN يعيد جمعهما وقت السؤال: FROM orders JOIN customers ON customers.id = orders.customer_id.
وINNER JOIN — وهو الافتراضي — يُبقي فقط ما له طرفان. فالعميل بلا طلبات لا يظهر، وهذا ما سيحلّه الدرس التالي.
02
المطلوب
اعرض name وtotal لكل طلب، مرتّبة من الأكبر.
معايير التصحيح
5 معايير- خمسة صفوف — طلب لكل صفّ
- العمودان name و total
- مرتّبة تنازليًّا بالمجموع
- الأكبر لخالد بـ300
- فهد بلا طلبات فلا يظهر
الجداول المتاحة في هذا الدرس
CREATE TABLE customers ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, city TEXT NOT NULL ); CREATE TABLE orders ( id INTEGER PRIMARY KEY, customer_id INTEGER REFERENCES customers(id), total INTEGER NOT NULL, placed_on TEXT NOT NULL ); INSERT INTO customers (id, name, city) VALUES (1, 'ليان', 'الرياض'), (2, 'خالد', 'جدة'), (3, 'ريم', 'الدمام'), (4, 'فهد', 'الرياض'); INSERT INTO orders (customer_id, total, placed_on) VALUES (1, 120, '2026-09-01'), (1, 80, '2026-09-12'), (2, 300, '2026-09-03'), (3, 45, '2026-09-20'), (2, 60, '2026-09-25');