Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan Operasi Tolak dalam MySQL Menggunakan NOT IN?

Bagaimana untuk Melakukan Operasi Tolak dalam MySQL Menggunakan NOT IN?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-31 22:30:11272semak imbas

How to Perform a Minus Operation in MySQL Using NOT IN?

Melaksanakan Operasi Tolak dalam MySQL

Dalam MySQL, melaksanakan operasi tolak tidak disokong secara langsung seperti dalam pangkalan data Oracle. Walau bagaimanapun, terdapat cara alternatif untuk mencapai hasil yang serupa menggunakan NOT IN atau teknik lain.

Memahami Masalah

Anda mempunyai tiga jadual:

  • Perkhidmatan_Butiran: Mengandungi butiran perkhidmatan.
  • Servicing_States: Menyenaraikan negeri di mana perkhidmatan ditawarkan.
  • Pengecualian: Menunjukkan kod ZIP dan menyatakan tempat perkhidmatan tidak ditawarkan.

Anda bertujuan untuk menggabungkan jadual ini dan memaparkan hasilnya sebagai:

SELECT query_1 - SELECT query_2

Penyelesaian Menggunakan NOT IN

MySQL menyediakan NOT IN operator, yang boleh digunakan untuk meniru operasi tolak. Pertanyaan di bawah memanfaatkan NOT IN untuk mencapai hasil yang diingini:

SELECT
  service_details.Service_Code
FROM
  service_details
WHERE
  service_details.Service_Code IN (
    SELECT
      servicing_states.Service_Code
    FROM
      servicing_states
    WHERE
      servicing_states.State = 'California'
  )
  AND service_details.Service_Code NOT IN (
    SELECT
      exception.Service_Code
    FROM
      exception
    WHERE
      exception.State = 'California'
  );

Pertanyaan ini memilih Service_Code daripada jadual Service_Details yang wujud dalam jadual Servicing_States untuk California tetapi tidak terdapat dalam jadual Exception untuk California. Pendekatan ini meniru kesan operasi tolak.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Operasi Tolak dalam MySQL Menggunakan NOT IN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn