Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Meniru Fungsi `INTERSECT` MySQL?

Bagaimanakah Saya Boleh Meniru Fungsi `INTERSECT` MySQL?

Linda Hamilton
Lepaskan: 2024-12-22 12:58:36
asal
897 orang telah melayarinya

How Can I Replicate MySQL's `INTERSECT` Functionality?

Mencari Setara untuk MySQL's Intersect

Dalam SQL, pengendali INTERSECT mendapatkan semula nilai berbeza yang muncul dalam kedua-dua pertanyaan yang ditentukan. Walau bagaimanapun, MySQL tidak menyokong INTERSECT secara asli.

Alternatif dalam MySQL

Untuk mencapai hasil yang serupa dalam MySQL, seseorang boleh menggunakan:

  • SERTAI DALAM: Nilai setiap lajur sepadan antara kedua-dua jadual, tetapi pendua akan dikembalikan.
  • WHERE ... IN: Memilih nilai yang berbeza dalam jadual pertama yang juga wujud dalam jadual kedua.

Contoh

Pertimbangkan pertanyaan berikut dalam sistem pengurusan pangkalan data lain yang menggunakan INTERSECT:

(select * from emovis_reporting where (id=3 and cut_name= '全プロセス' and cut_name='恐慌') ) 
intersect
( select * from emovis_reporting where (id=3) and ( cut_name='全プロセス' or cut_name='恐慌') )
Salin selepas log masuk

MySQL Alternatif menggunakan INNER JOIN:

SELECT DISTINCT * 
FROM emovis_reporting e1
INNER JOIN emovis_reporting e2 
ON (e1.id = e2.id) AND (e1.cut_name = e2.cut_name)
WHERE e1.id = 3 AND (e1.cut_name = '全プロセス' OR e1.cut_name = '恐慌');
Salin selepas log masuk

MySQL Alternatif menggunakan WHERE ... IN:

SELECT DISTINCT * 
FROM emovis_reporting
WHERE (id = 3) AND (cut_name IN ('全プロセス', '恐慌'));
Salin selepas log masuk

Alternatif MySQL ini mengembalikan nilai berbeza yang memenuhi syarat yang dinyatakan dalam kedua-dua subkueri. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa lajur id terlibat dalam pertanyaan khusus ini, yang akan menghalang pendua daripada dikembalikan. Untuk pertanyaan tanpa pengecam unik, menggunakan DISTINCT dalam pertanyaan luar mungkin diperlukan untuk memastikan hasil yang unik.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meniru Fungsi `INTERSECT` MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan