SÉLECTIONNER uniquement la ligne la plus récente via MySQL JOIN
En ce qui concerne la jointure de tables pour accéder aux données client, vous pouvez rencontrer des situations où vous souhaitez pour récupérer uniquement l'entrée la plus récente d'une table associée. Ceci est répandu dans les scénarios où des données historiques sont stockées. Heureusement, MySQL propose plusieurs approches pour y parvenir.
Une méthode consiste à utiliser une sous-requête corrélée dans la clause WHERE. Cette approche implique de référencer l'alias de la table parent pour récupérer la ligne correspondante de la table enfant. Par exemple :
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 )
Cette requête récupère uniquement l'enregistrement de l'historique des appels le plus récent pour chaque client.
De plus, vous avez mentionné l'utilisation de CONCAT dans un prédicat LIKE. Cette utilisation est valide dans MySQL et vous permet de rechercher des sous-chaînes dans les valeurs de colonnes concaténées.
Dans votre requête initiale, vous avez utilisé un INNER JOIN, qui renvoie les lignes correspondantes des deux tables. Cependant, vous avez également exprimé une incertitude quant au type JOIN approprié. Voici une brève explication :
Choisir le type JOIN correct dépend des exigences spécifiques de votre requête.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!