الخلية كيفية إزالة السجلات في الجدول التي هي في جدول آخر

StackOverflow https://stackoverflow.com/questions/1019475

  •  06-07-2019
  •  | 
  •  

سؤال

ولدي جدول A مع مقرب من 15000 الإدخالات. لدي جدول B الثاني 7900 إدخالات مع حقل مشترك مع جدول A.

ولست بحاجة إلى استخراج إلى tableC مؤقتة ثلث كافة الإدخالات من الجدول ألف باستثناء تلك التي تظهر أيضا في جدول B. بسيطة كما قد يبدو، ط طعاما وجدت طريقة للقيام بذلك. أقرب ما حصلت عليه هو هذا:

INSERT INTO tableC
SELECT * 
FROM tableA
    INNER JOIN tableB
        ON tableA.field IS NOT tableB.field

وهذا SQL فقط يختار كل شيء في tableA، حتى الإدخالات التي هي في tableB.

وأي أفكار أين أنا ذاهب خاطئة؟

هل كانت مفيدة؟

المحلول

وماذا لو جربت هذا؟

INSERT INTO tableC 
SELECT * 
FROM tableA 
WHERE tableA.field NOT IN (SELECT tableB.field FROM tableB)

وأو يمكنك محاولة البديل EXISTS جملة

INSERT INTO tableC 
SELECT * 
FROM tableA 
WHERE NOT EXISTS (SELECT * FROM tableB WHERE tableB.field = tableA.field)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top