Mencari Alternatif untuk Bersilang dalam MySQL
Pengendali INTERSECT Microsoft SQL Server membenarkan seseorang untuk mendapatkan semula nilai berbeza yang wujud persamaan antara dua set data. Malangnya, MySQL tidak menyediakan persamaan langsung.
SQL Server Syntax:
INTERSECT SELECT value FROM dataset1 SELECT value FROM dataset2
MySQL Alternatives:
Sebaliknya, MySQL menawarkan kaedah alternatif untuk mencapai yang serupa hasil:
Kaedah 1: INNER JOIN dengan Distinct
Pendekatan ini menggunakan INNER JOIN antara dua set data dan menggunakan kata kunci DISTINCT untuk mengelakkan pendua:
SELECT DISTINCT value FROM dataset1 INNER JOIN dataset2 USING (value);
Kaedah 2: Subkueri dengan IN
Pilihan lain ialah menggunakan subkueri dengan IN untuk menyemak nilai yang sepadan:
SELECT value FROM dataset1 WHERE value IN (SELECT value FROM dataset2);
Contoh:
Pertimbangkan mengikut jadual MySQL:
CREATE TABLE table1 (id INT, value VARCHAR(255)); CREATE TABLE table2 (id INT, value VARCHAR(255)); INSERT INTO table1 VALUES (1, 'A'), (2, 'B'), (3, 'B'); INSERT INTO table2 VALUES (1, 'B'); -- Method 1 SELECT DISTINCT value FROM table1 INNER JOIN table2 USING (value); -- Method 2 SELECT value FROM table1 WHERE value IN (SELECT value FROM table2);
Kedua-dua kaedah akan mengembalikan yang berikut hasil:
+-------+ | value | +-------+ | B | +-------+
Apabila bekerja dengan data bukan unik, kata kunci DISTINCT dalam Kaedah 1 atau penggunaan DISTINCT dalam subkueri dalam Kaedah 2 memastikan bahawa hanya nilai unik dikembalikan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Fungsi Operator INTERSECT SQL Server dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!