Maison  >  Article  >  base de données  >  La différence entre rejoindre et où dans SQL

La différence entre rejoindre et où dans SQL

(*-*)浩
(*-*)浩original
2019-05-10 16:58:387298parcourir

La fonction du mot-clé join est de joindre plusieurs tables selon certaines conditions, afin que les données puissent être obtenues à partir de plusieurs tables.

Cours recommandé : Tutoriel MySQL.

La différence entre rejoindre et où dans SQL

Après l'adhésion, vous pouvez suivre sous condition et où condition Ici, je parle principalement de la différence entre les deux

Créez deux tables simples pour tester et ajouter des données, comme indiqué ci-dessous, une table s'appelle id_name, l'autre s'appelle id_age

Regardez d'abord les résultats sans ajouter de conditions - t2.age ='22'

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id

get

1. Prenez la jointure à gauche comme exemple ici. Exécutez d'abord Where et ajoutez la condition - when t2.age ='22'

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id where t2.age ='22'

Le résultat est le suivant

La condition Where peut être obtenue par filtrer les conditions une fois l'opération de jointure gauche terminée

2 Lors de l'exécution sur condition plus - t2.age ='22'

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id and t2.age ='22'

Les résultats sont les suivants

La condition on peut être obtenue en filtrant les conditions avant la jointure gauche, puis en joignant les deux tables

Ici, la jointure gauche est Par exemple, pour la jointure interne, de par sa nature, les résultats obtenus par les deux conditions seront les mêmes, mais le processus interne est toujours différent.

sur les travaux plus tôt que là, procédez d'abord selon la condition on. Pour les opérations de jointure multi-tables, générez une table temporaire. et filtrer par où

Lequel et où est le plus efficace ?

S'il s'agit d'une jointure interne, mettre et mettre Where produit le même résultat, mais ce n'est pas le cas Je ne peux pas dire laquelle est la plus efficace et la plus rapide ? S'il y a une jointure externe (gauche ou droite), il y aura une différence, car on prend effet en premier et certaines données ont été filtrées à l'avance, tandis que Where prend effet plus tard.

Pour résumer, il semble plus efficace de le mettre, car il est exécuté avant où.
Faites d'abord le produit cartésien, puis filtrez. Si la jointure est interne, continuez à descendre. . Si la jointure est une jointure de gauche, ajoutez les données dans la table principale de gauche filtrées par on ; puis effectuez le filtrage où

on n'est pas le filtrage final, car la jointure de gauche peut l'ajouter. revenir plus tard, et où est le filtre final.

Uniquement lors de l'utilisation d'une jointure externe (gauche, droite), il y a cette différence entre on et où si vous utilisez une jointure interne, ce sera la même partout où elle est formulée. , parce qu'après c'est là, il n'y a pas d'autres étapes entre les deux.

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
Article précédent:A quoi sert un index MySQL ?Article suivant:A quoi sert un index MySQL ?