Maison > base de données > tutoriel mysql > Comment joindre une table MySQL uniquement à la ligne la plus récente d'une table associée ?

Comment joindre une table MySQL uniquement à la ligne la plus récente d'une table associée ?

Patricia Arquette
Libérer: 2025-01-01 11:18:11
original
639 Les gens l'ont consulté

How to Join a MySQL Table to Only the Most Recent Row in a Related Table?

MySQL : rejoindre uniquement la ligne la plus récente

Dans ce scénario, vous avez des tables customer et customer_data, où customer_data contient un historique de changements pour chaque client. Votre objectif est de récupérer les informations client en vous joignant uniquement à la ligne la plus récente de customer_data.

Pour y parvenir, utilisez une sous-requête dans la clause WHERE pour identifier l'ID maximum de chaque client dans customer_data. Joignez cette sous-requête à la table client en utilisant la syntaxe LEFT JOIN, comme indiqué ci-dessous :

SELECT c.*,
FROM customer AS c
LEFT JOIN customer_data AS d ON d.customer_id = c.customer_id AND d.ID = (
  SELECT MAX(ID)
  FROM customer_data
  WHERE customer_id = c.customer_id
)
WHERE name LIKE '%Smith%'
LIMIT 10, 20;
Copier après la connexion

Dans cette requête :

  • LEFT JOIN garantit que toutes les lignes de la table client sont inclus dans le résultat, même s'ils n'ont pas de ligne correspondante dans customer_data.
  • La sous-requête dans la clause WHERE calcule l'ID maximum pour chaque client dans customer_data.
  • Le résultat de la sous-requête est ensuite comparé à la colonne ID dans customer_data pour sélectionner uniquement la ligne la plus récente.

Cette approche isole efficacement la ligne la plus récente. entrées pour chaque client et les joint à la table des clients pour un traitement ultérieur.

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