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

كيف يمكنني الحذف من جدول قاعدة البيانات SQL DELETE بناءً على نتيجة استعلام جزئي SubQuery

فاديا جميل

السؤال

Recommended Posts

  • 1

يمكن استخدام SubQuery مع المعامل except لجلب القيم في الجدول الأول وتجنبها في الآخر.

الاستعلام الجزئي في المثال التالي سيجلب الأسطر التي لها id في الجدول A وليس لها مقابل في B

delete from Table_A
where id in 
(
	select id from Table_A
	except 
	select id from Table_B
)

أو يمكن استعمال المعامل Not IN حيث سنحذف كل سطر من A ليس له id في B

DELETE 
FROM Table_A AS A
Where
    A.id not in ( Select B.Tabale_A_Id From Table_B As B )

كما يمكن استخدام Not EXISTS هنا سيتم مقابلة سطر بسطر وحذف السطر الذي ليس له مقابل

DELETE FROM Table_A
WHERE Not EXISTS 
  (
    SELECT * 
    FROM Table_B As B
    Where B.Table_A_Id = Table_A.Id
   )

 

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

  • 0

بالإضافة للطرق السابقة يمكن كذلك حذف بواسطة الشروط مباشرة مثل المثال التالي:

DELETE FROM customer1
WHERE agent_code=ANY(
SELECT agent_code FROM agents
WHERE working_area='Egypt');

كذلك تستطيع استخدام الاختصارات alias مع جمل الحذف، وكذلك استخدام المعامل In كالتالي:

DELETE FROM agent1 da
WHERE 3 IN(
SELECT grade FROM customer cu
WHERE agent1.agent_code<>customer.agent_code);


أو تحديد قيم معينه باستخدام min و max وحذف سواء كل ما هو أكبر أو أصغر من تلك القيم:

DELETE FROM agent1
WHERE agent_code IN
(SELECT agent_code FROM orders a
WHERE ord_amount=(
SELECT MIN(ord_amount) FROM orders b
WHERE a.ord_date=b.ord_date));

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...