اذهب إلى المحتوى
  • 0

كيفية عرض السجلات التي لا تنتمي لعلاقة بين جدولين في SQL

فاديا جميل

السؤال

Recommended Posts

  • 1

يمكننا عمل استعلام فرعي يعيد لنا الأفلام التي تمت مشاهدتها من قبل مستخدم ما،

ثم نعمل الربط على عدم وجود هذه القائمة من معرفات الأفلام في سجل المشاهدة للمستخدم أي NOT EXISTS

SELECT * 
FROM my_movies m -- جدول الأفلام
WHERE NOT EXISTS  (  -- عمل فلترة عكسة - غير موجود
	
	SELECT * FROM seen s -- جلب بيانات جدول المشاهدات
	WHERE s.movie_id = m.id -- عمل الربط حسب رقم الفيلم
	AND   s.user_id  = 999  -- ورقم المستخدم
);

أو نستخدم الربط LEFT OUTER JOIN:

  • جدول الأفلام هو الجدول اليساري
  • جدول المشاهدة هو الجدول اليميني
  • الربط حسب رقم الفيلم
  • عمل فلترة حسب رقم المستخدم
  • فلترة الأفلام التي لم تتم مشاهدتها
SELECT * 
FROM my_movies m
 LEFT OUTER JOIN seen s
 ON (m.id = s.movie_id AND s.user_id = 999)
WHERE s.movie_id IS NULL;

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...