كيف أربط الطلبات بالبلدان عبر جدول العملاء؟

متوسطقراءة دقيقةآخر تحديث 3 أكتوبر 2026

SQL قواعد البيانات

الإجابة

قد تحتاج إلى جدول وسيط للوصول من كيان إلى معلومة موجودة في جدول ثالث. إذا كان الطلب يحتوي على customer_id، وكان العميل يحتوي على country_id، فإن الطريق المنطقي من الطلب إلى البلد يمر عبر العميل. نكتب ربطا أول للطلب بصاحبه، ثم ربطا ثانيا لبلد ذلك العميل.

لكل خطوة شرط مستقل يصف العلاقة المناسبة. لا نقارن معرّف الطلب بمعرّف البلد لمجرد أن العمودين رقميان، ولا نفترض أن الجدول الثالث يجب أن يرتبط دائما بأول جدول مكتوب. يمكن لشرط الربط الثاني أن يستخدم أعمدة الجدول الوسيط الذي أصبح متاحا في الاستعلام.

مثال

SELECT o.id, c.name, co.name AS country_name
FROM orders AS o
INNER JOIN customers AS c ON o.customer_id = c.id
INNER JOIN countries AS co ON c.country_id = co.id;

يظهر الطلب هنا فقط إذا اكتملت المطابقتان. فإذا كان المطلوب الاحتفاظ بالطلبات رغم غياب بعض البيانات المرتبطة، نحتاج إلى اختيار روابط خارجية مناسبة بدلا من هذه السلسلة الداخلية.

باختصار: اتبع العلاقات خطوة خطوة، واربط الجدول الثالث بالعمود الذي يشير إليه فعليا في الجدول الوسيط.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر فهمك

أي شرط يكمل الربط لإظهار بلد صاحب الطلب؟

SELECT o.id, co.name
FROM orders AS o
INNER JOIN customers AS c ON o.customer_id = c.id
INNER JOIN countries AS co ON /* الشرط المطلوب */;