الخلية كيفية إزالة السجلات في الجدول التي هي في جدول آخر
-
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)
لا تنتمي إلى StackOverflow