Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Meniru FULL OUTER JOIN dalam MySQL?

Bagaimana untuk Meniru FULL OUTER JOIN dalam MySQL?

DDD
DDDasal
2024-11-15 15:59:03928semak imbas

How to Emulate a FULL OUTER JOIN in MySQL?

Meniru MySQL FULL JOIN

Dalam MySQL, ketiadaan sokongan langsung untuk FULL OUTER JOIN boleh menimbulkan cabaran. Untuk mengatasi had ini, penyelesaian biasa diperlukan.

Penjelasan:

MySQL menggunakan operasi LEFT JOIN dan RIGHT JOIN, tetapi bukan FULL JOIN. Oleh itu, meniru JOIN PENUH memerlukan gabungan gabungan ini.

Pendekatan:

  1. LEFT JOIN:

    • Lakukan LEFT JOIN antara jadual t_13 dan t_17, memadankan medan biasa "nilai."
    • Operasi ini menggandingkan semua baris daripada t_13 dengan baris yang sepadan dalam t_17, atau dengan nilai NULL jika terdapat tiada padanan.
  2. RIGHT JOIN:

    • Lakukan RIGHT JOIN antara jadual t_13 dan t_17, serupa dengan LEFT JOIN tetapi dengan susunan jadual bertentangan.
    • Langkah ini sepadan dengan semua baris daripada t_17 dengan baris yang sepadan dalam t_13, atau dengan nilai NULL jika tiada padanan.
  3. UNION ALL:

    • Gabungkan hasil daripada KIRI JOIN dan KANAN JOIN menggunakan operasi UNION ALL.
    • Ini menggabungkan baris yang mempunyai padanan dalam kedua-dua jadual dan mengekalkan baris pendua.
  4. WHERE Klausa:

    • Tambah klausa WHERE untuk menapis nilai NULL dalam Medan "val13".
    • Ini menghapuskan baris yang kedua-dua jadual mengembalikan NULL, menunjukkan tiada padanan.
  5. PESANAN OLEH dan HAD:

    • Isih hasil gabungan mengikut nilai gabungan "val13" dan "val17" untuk mendapatkan senarai diisih tunggal.
    • Secara pilihan, gunakan klausa LIMIT untuk mengehadkan bilangan baris dipaparkan.

Atas ialah kandungan terperinci Bagaimana untuk Meniru FULL OUTER JOIN dalam MySQL?. 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