Maison > base de données > tutoriel mysql > Comment sélectionner uniquement la ligne la plus récente d'une table associée dans MySQL à l'aide de JOIN ?

Comment sélectionner uniquement la ligne la plus récente d'une table associée dans MySQL à l'aide de JOIN ?

Susan Sarandon
Libérer: 2025-01-01 13:12:11
original
884 Les gens l'ont consulté

How to Select Only the Most Recent Row from a Related Table in MySQL using JOINs?

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

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 :

  • INNER JOIN : Récupère les lignes qui correspondent dans les deux tables.
  • LEFT JOIN : Récupère toutes les lignes de le tableau de gauche, même s'il n'y a aucune correspondance dans le tableau de droite table.
  • RIGHT JOIN : Similaire à LEFT JOIN, mais récupère toutes les lignes de la table de droite.
  • FULL JOIN : Combine INNER JOIN et OUTER JOINS, renvoyant toutes les lignes des deux tables.

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!

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