Maison > base de données > tutoriel mysql > Comment croiser efficacement les données de plusieurs tables dans MySQL ?

Comment croiser efficacement les données de plusieurs tables dans MySQL ?

Susan Sarandon
Libérer: 2024-12-29 16:15:19
original
687 Les gens l'ont consulté

How to Efficiently Intersect Data from Multiple Tables in MySQL?

Intersecting Data in MySQL

Problème :

Dans MySQL, un utilisateur a besoin d'une méthode pour croiser les données de deux tables, « enregistrements » et « données », en fonction de plusieurs champs de la table « enregistrements ». Un exemple précédent utilisant INTERSECT dans un autre SGBD a renvoyé des résultats insatisfaisants.

Solution :

MySQL ne fournit pas de support direct pour l'opérateur INTERSECT. Cependant, il existe des approches alternatives pour obtenir la fonctionnalité souhaitée.

Une option consiste à utiliser une jointure interne :

SELECT DISTINCT records.id 
FROM records
INNER JOIN data d1 on d1.id = records.firstname AND d1.value = "john"
INNER JOIN data d2 on d2.id = records.lastname AND d2.value = "smith"
Copier après la connexion

Cette requête joint la table "enregistrements" avec deux instances de " data", filtrant les lignes qui ont des valeurs correspondantes dans les deux jointures.

Une autre alternative est un in clause :

SELECT DISTINCT records.id 
FROM records
WHERE records.firstname IN (
    select id from data where value = 'john'
) AND records.lastname IN (
    select id from data where value = 'smith'
)
Copier après la connexion

Cette approche sélectionne les lignes de la table « enregistrements » dont les champs « prénom » et « nom » correspondent aux valeurs de la table « données ».

Ces méthodes fournissent des moyens efficaces pour croiser des données dans MySQL en combinant des lignes de plusieurs tables en fonction de critères communs.

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