MySQL FULL JOIN?
Dalam MySQL, operasi FULL JOIN tidak disokong secara langsung. Walau bagaimanapun, adalah mungkin untuk mencapai hasil yang serupa menggunakan gabungan LEFT JOIN dan RIGHT JOIN. Begini cara anda boleh melakukannya:
SELECT t1.column1, t2.column2 FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.id = t2.id UNION ALL SELECT t1.column1, NULL FROM table1 AS t1 RIGHT JOIN table2 AS t2 ON t1.id = t2.id WHERE t2.id IS NULL
Dalam pertanyaan ini, LEFT JOIN mendapatkan semula semua baris daripada jadual1 dan memadankannya dengan baris yang sepadan daripada jadual2 berdasarkan lajur id. RIGHT JOIN mendapatkan semula semua baris dari table2 dan memadankannya dengan baris yang sepadan dari table1. Operator UNION ALL menggabungkan hasil kedua-dua penyertaan.
Katakan kita mempunyai dua jadual, "Orang" dan "Pesanan", dengan data berikut:
Persons | ||
---|---|---|
P_Id | LastName | FirstName |
1 | Hansen | Ola |
2 | Pettersen | Kari |
3 | Svenson | Tove |
Orders | |
---|---|
OrderNo | P_Id |
22456 | 1 |
24562 | 1 |
77895 | 2 |
44678 | 2 |
34764 | 3 |
Kepada dapatkan hasil berikut menggunakan pertanyaan di atas:
LastName | FirstName | OrderNo |
---|---|---|
Hansen | Ola | 22456 |
Hansen | Ola | 24562 |
Pettersen | Kari | 77895 |
Pettersen | Kari | 44678 |
Svenson | Tove | 34764 |
Cukup gantikan jadual1 dengan "Orang" dan jadual2 dengan "Pesanan" dalam pertanyaan dan laksanakannya.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mencapai kesan JOIN PENUH dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!