Maison >base de données >tutoriel mysql >MySQL JOIN : ON ou USING – Quand dois-je utiliser lequel ?

MySQL JOIN : ON ou USING – Quand dois-je utiliser lequel ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-16 01:59:13779parcourir

MySQL JOIN: ON vs. USING – When Should I Use Which?

MySQL JOIN : ON vs. USING

L'instruction JOIN de MySQL fournit deux options de syntaxe pour joindre des tables : ON et USING. Bien que USING puisse sembler être simplement une alternative plus concise à ON, il existe des différences subtiles qui méritent d'être prises en considération.

Différences entre ON et USING

  • Flexibilité :ON offre une plus grande flexibilité car il permet des jointures sur une colonne, plusieurs colonnes ou même des conditions complexes. Par exemple :
SELECT * FROM world.City JOIN world.Country ON (City.CountryCode = Country.Code) WHERE ...
  • Nom de colonne : USING est plus utile lorsque les tables jointes partagent une colonne commune portant le même nom. Dans de tels cas, le nom de la colonne peut être omis :
SELECT ... FROM film JOIN film_actor USING (film_id) WHERE ...

Contrairement à ON, USING ne nécessite pas de noms de colonnes entièrement qualifiés dans la liste SELECT ou la clause WHERE :

SELECT film.title, film_id -- film_id not prefixed
FROM film
JOIN film_actor USING (film_id)
WHERE ...

Cas d'utilisation spécifiques

  • Utiliser ON :Quand jointure sur plusieurs colonnes, conditions ou noms de colonnes non identiques.
  • Utilisez USING : Lorsque vous joignez des tables avec une colonne commune portant le même nom pour plus de simplicité et de performances.

Ambiguïté et SELECT *

Lorsque vous utilisez ON pour joindre des tables, la colonne jointe apparaît deux fois dans le résultat ensemble. Avec USING, il n'apparaît qu'une seule fois. Cela peut entraîner des problèmes d'ambiguïté lors de la sélection de toutes les colonnes avec SELECT *.

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:
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