Maison >base de données >tutoriel mysql >Une explication de la différence d'utilisation entre on etwhere dans les instructions SQL
Ce blog fait référence à Internet. Je ne sais pas quel article est le manuscrit original, je le déclare donc par la présente.
Lorsque la base de données renvoie des enregistrements en connectant deux tables ou plus, une table temporaire intermédiaire sera générée, puis cette table temporaire sera renvoyée à l'utilisateur.
Tutoriels vidéo MySQL associés recommandés : "Tutoriel MySQL "
Lors de l'utilisation de jion gauche, la différence entre les conditions on et Where est la suivante :
1. La condition on est une condition utilisée lors de la génération d'une table temporaire. Elle renverra les enregistrements dans la table de gauche, que la condition on soit vraie ou non.
2. La condition Where est la condition de filtrage de la table temporaire après la génération de la table temporaire. Pour le moment, la jointure gauche n'a aucune signification (les enregistrements de la table de gauche doivent être renvoyés). Si la condition n'est pas vraie, tous seront filtrés.
Supposons qu'il y ait deux tableaux :
Tableau 1 : tab2
|
taille
|
||||||||||||||||
1 |
10 |
||||||||||||||||
1、select * form tab1 left join tab2 on (tab1.size = tab2.size) where tab2.name=’AAA’ 2、select * form tab1 left join tab2 on (tab1.size = tab2.size and tab2.name=’AAA’)2
|
|
||||||||||||||||
3 | 30 |
taille | nom |
10 | AAA |
20 | BBB |
20 | CCC |
Le premier processus SQL : 1. Table intermédiaire sous condition : tab1.size = tab2.sizetab1.idtab1.sizetab2.sizetab2.name11010AAA22020BBB22020CCC330(null)(null)|| 2. Puis filtrer la condition Where sur la table intermédiaire (les lignes qui ne sont pas vraies à ce moment seront filtrées) : tab2.name='AAA'tab1.idtab1.sizetab2.sizetab2.name11010AAA |
Deuxième processus SQL : 1. Intermédiaire table sous condition : tab1.size = tab2.size et tab2.name='AAA' (les enregistrements de la table de gauche seront renvoyés si la condition n'est pas vraie) tab1.idtab1.sizetab2.sizetab2.name11010AAA220(null)(null ) 330(null)(null) |
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!