Maison > base de données > tutoriel mysql > Comment récupérer plusieurs colonnes d'une sous-requête MySQL : tables virtuelles vs syntaxe JOIN ?

Comment récupérer plusieurs colonnes d'une sous-requête MySQL : tables virtuelles vs syntaxe JOIN ?

Patricia Arquette
Libérer: 2024-10-27 09:52:03
original
643 Les gens l'ont consulté

How to Retrieve Multiple Columns from a MySQL Subquery: Virtual Tables vs JOIN Syntax?

Sélection de plusieurs colonnes à partir d'une sous-requête MySQL

Dans MySQL, il peut être difficile de récupérer plusieurs colonnes de la même table à l'aide d'une sous-requête. Pour résoudre ce problème, explorons différentes approches :

Utiliser une table virtuelle

Au lieu de créer plusieurs sous-requêtes, vous pouvez créer une table virtuelle à l'aide d'une sous-requête. La syntaxe de cette approche est :

SELECT *
FROM (SELECT col1, col2, ... FROM original_table) AS virtual_table
Copier après la connexion

En utilisant cette table virtuelle dans une jointure, vous pouvez récupérer plusieurs colonnes de la table spécifiée en une seule requête.

Exemple de code :

SELECT a.attr, b.id, b.trans, b.lang
FROM attribute a
JOIN (
  SELECT id, translation AS trans, language AS lang, attribute
  FROM attributeTranslation
) AS b ON (a.id = b.attribute AND b.lang = 1)
Copier après la connexion

Utilisation de la syntaxe JOIN

Une autre option consiste à utiliser la syntaxe JOIN pour combiner plusieurs tables, y compris la table d'origine et la table virtuelle. Cette approche vous permet de récupérer plusieurs colonnes des tables jointes.

Exemple de code :

SELECT a.attr, b.id, b.trans, b.lang
FROM attribute a
JOIN attributeTranslation b ON (a.id = b.attribute AND b.lang = 1)
Copier après la connexion

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!

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