Memilih Baris Terkini Hanya melalui MySQL JOIN
Berkaitan dengan menyertai jadual untuk mengakses data pelanggan, anda mungkin menghadapi situasi yang anda inginkan untuk mengambil hanya entri terbaharu daripada jadual berkaitan. Ini lazim dalam senario di mana data sejarah disimpan. Nasib baik, MySQL menyediakan pelbagai pendekatan untuk mencapai ini.
Satu kaedah melibatkan penggunaan subkueri berkorelasi dalam klausa WHERE. Pendekatan ini melibatkan merujuk alias jadual induk untuk mendapatkan semula baris yang sepadan daripada jadual anak. Contohnya:
SELECT c.*, FROM client AS c LEFT JOIN client_calling_history AS cch ON cch.client_id = c.client_id WHERE cch.cchid = ( SELECT MAX(cchid) FROM client_calling_history WHERE client_id = c.client_id AND cal_event_id = c.cal_event_id )
Pertanyaan ini hanya mendapatkan rekod sejarah panggilan terbaharu untuk setiap pelanggan.
Selain itu, anda menyebut menggunakan CONCAT dalam predikat SUKA. Penggunaan ini sah dalam MySQL dan membolehkan anda mencari subrentetan dalam nilai lajur yang digabungkan.
Dalam pertanyaan awal anda, anda menggunakan INNER JOIN, yang mengembalikan baris yang sepadan daripada kedua-dua jadual. Walau bagaimanapun, anda juga menyatakan ketidakpastian tentang jenis JOIN yang sesuai. Berikut ialah penjelasan ringkas:
Memilih jenis JOIN yang betul bergantung pada keperluan pertanyaan khusus anda.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Hanya Baris Terkini daripada Jadual Berkaitan dalam MySQL menggunakan JOINs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!