Maison > base de données > tutoriel mysql > Comment rejoindre efficacement la ligne la plus récente d'une table historique dans MySQL ?

Comment rejoindre efficacement la ligne la plus récente d'une table historique dans MySQL ?

Linda Hamilton
Libérer: 2025-01-02 15:39:40
original
500 Les gens l'ont consulté

How to Efficiently Join the Most Recent Row from a Historical Table in MySQL?

Rejoindre la ligne la plus récente dans MySQL

Étant donné deux tables, customer et customer_data, où cette dernière contient un enregistrement historique des modifications des clients, la tâche à accomplir est de récupérer informations client tout en garantissant que seule l'entrée la plus récente de customer_data est jointe à chaque client dans la table customer.

Pour ce faire, envisagez d'utiliser la clause WHERE au lieu de la corps de requête principal, car il offre de meilleures performances et une meilleure lisibilité du code. Voici une requête optimisée :

SELECT c.*,
       CONCAT(title, ' ', forename, ' ', surname) AS name
FROM customer c
LEFT JOIN customer_data d
ON c.customer_id = d.customer_id
WHERE d.customer_id = (
    SELECT MAX(customer_id)
    FROM customer_data
    WHERE customer_id = c.customer_id
)
LIMIT 10, 20;
Copier après la connexion

Cette requête garantit que seule la ligne la plus récente de customer_data est jointe pour chaque client dans customer en la filtrant dans la clause WHERE. Le LEFT JOIN garantit que tous les clients de customer sont inclus dans les résultats, même s'ils n'ont pas d'entrée correspondante dans customer_data.

En ce qui concerne vos préoccupations concernant l'utilisation conjointe de CONCAT et LIKE, vous avez raison. CONCAT concatène les chaînes et la chaîne résultante peut être utilisée avec l'opérateur LIKE pour effectuer une correspondance de modèles. Votre requête est valable sous cet aspect.

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