Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Cekap Menyertai Baris Terkini dari Jadual Sejarah dalam MySQL?
Memandangkan dua jadual, pelanggan dan data_pelanggan di mana yang terakhir mengandungi rekod sejarah perubahan pelanggan, tugas di tangan adalah untuk mendapatkan semula maklumat pelanggan sambil memastikan hanya entri terbaharu daripada customer_data disertakan kepada setiap pelanggan dalam jadual pelanggan.
Untuk mencapai ini, pertimbangkan menggunakan klausa WHERE dan bukannya badan pertanyaan utama, kerana ia memberikan prestasi yang lebih baik dan kebolehbacaan kod. Berikut ialah pertanyaan yang dioptimumkan:
SELECT c.*, CONCAT(title, ' ', forename, ' ', surname) AS name FROM customer c LEFT JOIN customer_data d ON c.customer_id = d.customer_id WHERE d.customer_id = ( SELECT MAX(customer_id) FROM customer_data WHERE customer_id = c.customer_id ) LIMIT 10, 20;
Pertanyaan ini memastikan bahawa hanya baris terbaharu daripada customer_data digabungkan untuk setiap pelanggan dalam pelanggan dengan menapisnya dalam klausa WHERE. LEFT JOIN memastikan semua pelanggan daripada pelanggan disertakan dalam keputusan, walaupun mereka tidak mempunyai entri yang sepadan dalam customer_data.
Mengenai kebimbangan anda tentang menggunakan CONCAT dan LIKE bersama-sama, anda betul. CONCAT menggabungkan rentetan, dan rentetan yang terhasil boleh digunakan dengan operator LIKE untuk melakukan padanan corak. Pertanyaan anda adalah sah dalam aspek itu.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Menyertai Baris Terkini dari Jadual Sejarah dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!