Meniru MySQL FULL JOIN dengan KIRI dan KANAN JOINS
MySQL tidak menyokong operasi FULL JOIN secara asli. Walau bagaimanapun, adalah mungkin untuk mencapai hasil yang serupa menggunakan gabungan LEFT JOIN dan KANAN JOIN.
Memahami Masalah
Matlamatnya adalah untuk mengembalikan set keputusan yang merangkumi semua rekod daripada kedua-dua jadual, Orang dan Pesanan, walaupun medan yang sepadan (P_Id) adalah batal dalam mana-mana jadual.
Penyelesaian
Untuk mensimulasikan JOIN PENUH, gunakan pertanyaan berikut:
SELECT p.LastName, p.FirstName, o.OrderNo FROM Persons p LEFT JOIN Orders o ON p.P_Id = o.P_Id UNION ALL SELECT p.LastName, p.FirstName, o.OrderNo FROM Persons p RIGHT JOIN Orders o ON p.P_Id = o.P_Id WHERE p.P_Id IS NULL ORDER BY p.LastName;
Penjelasan
Pertanyaan ini menghasilkan set hasil yang sama dengan yang diterangkan dalam pernyataan masalah:
LastName | FirstName | OrderNo |
---|---|---|
Hansen | Ola | 22456 |
Hansen | Ola | 24562 |
Pettersen | Kari | 77895 |
Pettersen | Kari | 44678 |
Svendsen | Tove | 34764 |
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencontohi FULL JOIN dalam MySQL Menggunakan LEFT dan KANAN JOIN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!