"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية العثور على عنوان IP المفقود بين جدولين؟

كيفية العثور على عنوان IP المفقود بين جدولين؟

نشر في 2025-05-01
تصفح:664

How to Find Missing IP Addresses Between Two Tables?

العثور على عناوين IP مفقودة: مقارنة SQL

سيناريو:

لديك جدولين: login_log و ip_location . الهدف من ذلك هو تحديد جميع عناوين IP المسجلة في login_log التي هي لا موجودة في

SQL Solutions:

يمكن لعدة أساليب SQL تحقيق ذلك. دعنا ندرس ثلاث طرق شائعة:

  1. لا يوجد subquery: هذه الطريقة فعالة بشكل عام وتوافق على نطاق واسع.

    حدد IP من login_log حيث لا يوجد ( حدد 1 من IP_LOCATION حيث login_log.ip = ip_location.ip ) ؛
    SELECT ip
    FROM login_log
    WHERE NOT EXISTS (
        SELECT 1
        FROM ip_location
        WHERE login_log.ip = ip_location.ip
    );
    login_log

    لديه إدخال مقابل في ip_location . إذا لم يتم العثور على تطابق ، يتم تضمين عنوان IP في النتائج. لاحظ أن حدد 1 غالبًا ما يكون أكثر كفاءة من حدد IP في subquery.

  2. ترك الانضمام مع null تحقق: يستخدم هذا النهج اليسار لدمج الجداول ، ثم المرشحات للصفوف حيث عنوان IP. حدد L.IP من login_log l اليسار انضم إلى ip_location i على l.ip = i.ip حيث I.IP هو فارغ ؛

    SELECT l.ip
    FROM login_log l
    LEFT JOIN ip_location i ON l.ip = i.ip
    WHERE i.ip IS NULL;
    Minus
  3. في بعض قواعد البيانات):
  4. تجد هذه العملية المستندة إلى المجموعة الفرق مباشرة بين عناوين IP في الجدولين. لاحظ أن بناء الجملة قد يختلف بشكل طفيف اعتمادًا على نظام قاعدة البيانات المحدد الخاص بك (على سبيل المثال ،

    Minus في Oracle). حدد IP من login_log يستثني حدد IP من ip_location ؛

    SELECT ip FROM login_log
    EXCEPT
    SELECT ip FROM ip_location;
    تعتمد الطريقة المثلى على نظام قاعدة البيانات الخاص بك وحجم الجدول والفهرسة.
  5. لا يوجد
غالبًا ما يؤدي أداءً جيدًا في postgresql ، بينما يمكن أن يكون

ينضم فعالًا في أنظمة أخرى. باستثناء

يمكن أن تكون موجزة ولكن قد لا تكون دائمًا الأسرع. تجنب

ليس في مع الفائزين الفرعيين ، حيث يمكن أن يكون أبطأ بشكل ملحوظ ، خاصة مع مجموعات البيانات الكبيرة. يعد الفهرسة المناسبة على العمود IP في كلا الجدولين أمرًا ضروريًا للأداء في جميع الحالات.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3