Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Hanya Baris Terkini Apabila Menyertai Jadual MySQL?

Bagaimana untuk Mendapatkan Hanya Baris Terkini Apabila Menyertai Jadual MySQL?

Susan Sarandon
Susan Sarandonasal
2025-01-05 16:17:39813semak imbas

How to Retrieve Only the Most Recent Row When Joining MySQL Tables?

Menyertai Jadual MySQL untuk Mendapatkan Hanya Baris Terkini

Dalam sistem pengurusan data, menyertai jadual adalah penting untuk menggabungkan maklumat daripada pelbagai sumber. Apabila berurusan dengan data sejarah, selalunya menjadi perlu untuk mendapatkan semula baris terbaharu daripada salah satu jadual yang digabungkan.

Pertimbangkan senario pangkalan data pelanggan yang mana data pelanggan disimpan dalam dua jadual: pelanggan dan data_pelanggan. Jadual pelanggan mengandungi maklumat pelanggan asas, manakala pelanggan_data menyimpan perubahan pada profil pelanggan. Untuk memaparkan maklumat pelanggan dalam jadual, kedua-dua jadual perlu dicantumkan, tetapi kami hanya mahukan baris terbaru daripada customer_data.

Untuk mencapai ini, anda boleh menggunakan fungsi MAX() MySQL bersama-sama dengan subquery untuk mencari ID baris terbaharu dalam data_pelanggan. Pertanyaan akan kelihatan seperti ini:

SELECT 
  c.*,
  cd.value
FROM 
  customer c
LEFT JOIN 
  customer_data cd ON c.customer_id = cd.customer_id
WHERE 
  cd.customer_id = (
    SELECT 
      MAX(customer_id) 
    FROM 
      customer_data
    WHERE 
      customer_id = c.customer_id
  )

Pertanyaan ini mula-mula mendapatkan semula semua lajur daripada jadual pelanggan (diawali dengan c.). Ia kemudian melakukan LEFT JOIN dengan jadual customer_data (diawali dengan cd.), menapis baris dalam customer_data untuk hanya memasukkan baris dengan customer_id maksimum untuk setiap pelanggan (seperti yang ditentukan oleh subquery).

Selain itu, sebagai disebut dalam pertanyaan rujukan, anda boleh menggunakan CONCAT() dengan SUKA untuk mencari nilai tertentu dalam lajur bercantum. Dalam pertanyaan sampel, CONCAT(tajuk,' ',nama depan,' ',nama keluarga) sedang dibandingkan dengan rentetan '%Smith%'. Ini akan mengembalikan semua nama pelanggan yang mengandungi subrentetan "Smith" di mana-mana dalam medan gabungan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Hanya Baris Terkini Apabila Menyertai Jadual MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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