إفترض أن لديك كيان في قاعدة البيانات يسمى كتب، وأن هذا الكيان على علاقة واحد إلى متعدد مع كيان آخر يسمى أسعار، والتي من خلالها يكون لكل كتاب أكثر من سعر. وأنت تريد معرفة الكتب التي لم تسعر بعد، أي تلك الكتب التي ليس لها سجل في كيان الأسعار، حتى نقوم بذلك نبدأ بوصف الكيانين (الجدولين) أولا كما يلي على سبيل المثال لا الحصر:
books:
id |
int(6) |
title |
varchar(255) |
description |
text |
prices:
id |
int(6) |
book_id |
int(6) |
price |
float |
directed_to |
varchar(255) |
والآن نملئ بيانات تثميلية بسيطة كما يلي:
Books:
id |
Title |
Description |
1 |
إنجاز الإعجاز |
وصف الكتاب إنجاز الإعجاز |
2 |
أشجار الثمار |
وصف الكتاب أشجار الثمار |
3 |
تطوير تطبيقات ويب |
وصف الكتاب. |
Prices:
id |
book_id |
price |
Directed_to |
1 |
2 |
14.50 |
طلاب |
2 |
2 |
26.50 |
شركات |
من هنا نريد إنشاء جملة طلب لقاعدة البيانات SQL Query يمكننا من عرض الكتابين "إنجاز الإعجاز" و "تطوير تطبيقات ويب" حيث أنهما الكتابان اللذان لم يسعرا بعد. هذه الجملة سوف تستخدم الربط من الشمال بين الجدولين LEFT JOIN كما يلي:
SELECT * FROM books LEFT JOIN prices ON book.id = price.book_id
WHERE price.id IS NULL