Maison >base de données >tutoriel mysql >La différence entre rejoindre et où dans SQL
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.
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!