Maison > base de données > tutoriel mysql > Comment récupérer uniquement la ligne la plus récente lors de la jonction de tables MySQL ?

Comment récupérer uniquement la ligne la plus récente lors de la jonction de tables MySQL ?

Susan Sarandon
Libérer: 2025-01-05 16:17:39
original
797 Les gens l'ont consulté

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

Joindre des tables MySQL pour récupérer uniquement la ligne la plus récente

Dans les systèmes de gestion de données, joindre des tables est essentiel pour combiner des informations provenant de plusieurs sources. Lorsqu'il s'agit de données historiques, il devient souvent nécessaire de récupérer la ligne la plus récente de l'une des tables jointes.

Considérons le scénario d'une base de données client dans laquelle les données client sont stockées dans deux tables : customer et customer_data. La table customer contient des informations de base sur le client, tandis que customer_data stocke les modifications apportées au profil du client. Pour afficher les informations du client dans une table, les deux tables doivent être jointes, mais nous voulons uniquement la ligne la plus récente de customer_data.

Pour y parvenir, vous pouvez utiliser la fonction MAX() de MySQL avec une sous-requête. pour trouver l'ID de la ligne la plus récente dans customer_data. La requête ressemblerait à ceci :

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
  )
Copier après la connexion

Cette requête récupère d'abord toutes les colonnes de la table customer (préfixées par c.). Il effectue ensuite un LEFT JOIN avec la table customer_data (préfixée par cd.), en filtrant les lignes de customer_data pour inclure uniquement celles avec le customer_id maximum pour chaque client (tel que déterminé par la sous-requête).

De plus, comme mentionné dans la requête de référence, vous pouvez utiliser CONCAT() avec LIKE pour rechercher des valeurs spécifiques dans des colonnes concaténées. Dans l’exemple de requête, CONCAT(title,' ',forename,' ',surname) est comparé à la chaîne '%Smith%'. Cela renverrait tous les noms de clients contenant la sous-chaîne « Smith » n'importe où dans le champ combiné.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal