Pendekatan Ganti untuk MySQL Intersect
Pangkalan data MySQL tidak mempunyai operasi INTERSECT, iaitu fungsi unik yang digunakan untuk mengenal pasti nilai yang terdapat dalam kedua-dua hasil set. Namun begitu, terdapat kaedah alternatif untuk mencapai hasil yang serupa.
Kaedah 1: INNER JOIN with DISTINCT
Untuk meniru operasi INTERSECT menggunakan INNER JOIN, ikut langkah berikut:
Kaedah ini memastikan bahawa hanya nilai unik yang terdapat dalam kedua-dua jadual dikembalikan.
Kaedah 2: DI MANA ... DALAM dengan DISTINCT
Sebagai alternatif, anda boleh menggunakan subquery dalam klausa WHERE ... IN dengan kata kunci DISTINCT untuk mencapai hasil yang sama:
Contoh:
Andaikan anda mempunyai dua jadual, table_a dan table_b, dengan data berikut:
table_a | table_b |
---|---|
1, A | 1, B |
2, B | |
3, B |
Untuk mencari nilai yang wujud dalam kedua-dua jadual menggunakan INNER JOIN dengan DISTINCT, anda boleh laksanakan pertanyaan berikut:
SELECT DISTINCT value FROM table_a INNER JOIN table_b USING (value);
Begitu juga, menggunakan WHERE ... IN dengan DISTINCT:
SELECT DISTINCT value FROM table_a WHERE (value) IN (SELECT DISTINCT value FROM table_b);
Kedua-dua pertanyaan ini akan mengembalikan hasil berikut:
value |
---|
B |
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan Operasi INTERSECT dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!