Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Cekap Menyilang Data daripada Pelbagai Jadual dalam MySQL?

Bagaimana untuk Cekap Menyilang Data daripada Pelbagai Jadual dalam MySQL?

Susan Sarandon
Lepaskan: 2024-12-29 16:15:19
asal
686 orang telah melayarinya

How to Efficiently Intersect Data from Multiple Tables in MySQL?

Data bersilang dalam MySQL

Isu:

Dalam MySQL, pengguna memerlukan kaedah untuk memotong data daripada dua jadual, "rekod" dan "data," berdasarkan berbilang medan dalam jadual "rekod". Contoh sebelumnya menggunakan INTERSECT dalam DBMS lain mengembalikan hasil yang tidak memuaskan.

Penyelesaian:

MySQL tidak menyediakan sokongan langsung untuk pengendali INTERSECT. Walau bagaimanapun, terdapat pendekatan alternatif untuk mencapai kefungsian yang diingini.

Satu pilihan ialah menggunakan gabungan dalaman:

SELECT DISTINCT records.id 
FROM records
INNER JOIN data d1 on d1.id = records.firstname AND d1.value = "john"
INNER JOIN data d2 on d2.id = records.lastname AND d2.value = "smith"
Salin selepas log masuk

Pertanyaan ini menyertai jadual "rekod" dengan dua kejadian " data", menapis untuk baris yang mempunyai nilai yang sepadan dalam kedua-dua cantuman.

Alternatif lain ialah in klausa:

SELECT DISTINCT records.id 
FROM records
WHERE records.firstname IN (
    select id from data where value = 'john'
) AND records.lastname IN (
    select id from data where value = 'smith'
)
Salin selepas log masuk

Pendekatan ini memilih baris daripada jadual "rekod" yang medan "nama depan" dan "nama keluarga" sepadan dengan nilai dalam jadual "data".

Kaedah ini menyediakan cara yang berkesan untuk menyilang data dalam MySQL dengan menggabungkan baris daripada berbilang jadual berdasarkan kriteria biasa.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Menyilang Data daripada Pelbagai Jadual dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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