0Pricing
SQL Academy · درس

الربط الذاتي والأسماء المستعارة

اربط الجدول بنفسه باستخدام الأسماء المستعارة لمقارنة الصفوف داخله، مثل الموظفين والمديرين أو التواريخ والتواريخ السابقة.

الربط الذاتي والأسماء المستعارة درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.

الربط الذاتي: ربط جدول بنفسه

توجد العلاقة أحيانًا داخل جدول واحد:

  • الموظفون ↔ المديرون، إذ يكون المدير موظفًا
  • التعليقات المتسلسلة، إذ يملك كل تعليق parent_id
  • شبكة الأصدقاء، أي مستخدم ↔ مستخدم

الإعداد

جدول employees يحتوي على FK يشير إلى الجدول نفسه:

CREATE TABLE employees (
  id BIGSERIAL PRIMARY KEY,
  full_name TEXT NOT NULL,
  manager_id BIGINT REFERENCES employees(id)
);

ربط الموظفين بمديريهم

أعطوا كل نسخة اسمًا مستعارًا مختلفًا:

SELECT e.full_name AS employee, m.full_name AS manager
FROM employees e
JOIN employees m ON m.id = e.manager_id;

لن تُترجم الاستعلامات دون أسماء مستعارة

من دون الأسماء المستعارة، لا يمكنكم معرفة أي full_name تقصدون. يصبح كل مرجع غامضًا:

-- ERROR: column reference "full_name" is ambiguous
SELECT full_name FROM employees JOIN employees ON ...

استخدام LEFT JOIN للموظفين في المستوى الأعلى

يستبعد الربط الداخلي الموظفين الذين ليس لديهم مدير، مثل المدير التنفيذي. استخدموا LEFT JOIN للاحتفاظ بهم:

SELECT e.full_name AS employee, m.full_name AS manager
FROM employees e
LEFT JOIN employees m ON m.id = e.manager_id;

التعليقات المتسلسلة

اعرضوا كل تعليق مع نص التعليق الأب:

SELECT c.id, c.body, p.body AS parent_body
FROM comments c
LEFT JOIN comments p ON p.id = c.parent_id;

الأزواج والتركيبات

اعثروا على أزواج المنتجات التي ظهرت في الطلب نفسه، من دون تكرار الزوجين (A,B) و(B,A):

SELECT a.id AS product_a, b.id AS product_b
FROM order_items a
JOIN order_items b
  ON a.order_id = b.order_id
 AND a.product_id < b.product_id;

مقارنة الصفوف المتجاورة

أجروا ربطًا ذاتيًا مع النسخة «السابقة» من الصف:

SELECT a.id, a.created_at, b.created_at AS prev_at
FROM events a
LEFT JOIN events b ON b.id = a.previous_id;

الربط الذاتي مقابل دالة النافذة

في كثير من المهام التي تتطلب «مقارنة كل صف بالصف السابق»، تكون دالة النافذة (LAG) أبسط وأسرع من الربط الذاتي. ويُشرح ذلك في درس Window Functions Deep Dive.

عمليات الربط الذاتي التكرارية

هل تحتاجون إلى التعمق عبر N مستويات، مثل مخطط المؤسسة أو شجرة المحادثة؟ استخدموا CTE تكرارية — ويُشرح ذلك في درس Subqueries and CTEs.

فهرسة عمود FK

أضيفوا دائمًا فهرسًا إلى عمود FK الذي يشير إلى الجدول نفسه. فمن دونه، تفحص عملية الربط الجدول بأكمله عند كل عملية بحث عن أب.

CREATE INDEX employees_manager_idx ON employees(manager_id);

مراجعة

تعالج عمليات الربط الذاتي العلاقات داخل جدول واحد.

  • اسمان مستعاران لنسختين افتراضيتين
  • استخدم LEFT JOIN للاحتفاظ بالصفوف الجذرية / عالية المستوى
  • فهرس عمود المفتاح الخارجي
  • يمكن لدوال النوافذ تبسيط أنماط «الصف السابق»

تحقق سريع

تربط جدول employees بنفسه للعثور على مدير كل موظف. لماذا يلزم استخدام الأسماء المستعارة؟

الأسئلة الشائعة

هل درس «الربط الذاتي والأسماء المستعارة» مجاني؟

نعم — نص درس «الربط الذاتي والأسماء المستعارة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.

ماذا ستتعلم في «الربط الذاتي والأسماء المستعارة»؟

اربط الجدول بنفسه باستخدام الأسماء المستعارة لمقارنة الصفوف داخله، مثل الموظفين والمديرين أو التواريخ والتواريخ السابقة. تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟

لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «الربط الذاتي والأسماء المستعارة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟

نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. لماذا نستخدم عمليات الربط (مراجعة النموذج العلائقي)
  2. آلية INNER JOIN
  3. LEFT JOIN وRIGHT JOIN وعمليات الربط الخارجية
  4. الربط الذاتي والأسماء المستعارة
← العودة إلى SQL Academy