Maison  >  Article  >  développement back-end  >  La différence entre les conditions On et Where dans SQL

La différence entre les conditions On et Where dans SQL

jacklove
jackloveoriginal
2018-05-22 10:55:232309parcourir

Lors de l'apprentissage des bases de données, nous rencontrons souvent sur et où. Aujourd'hui, je vais parler de la différence entre sur et où.

Lorsque la base de données renvoie des enregistrements en connectant deux tables ou plus, elle génère une table temporaire intermédiaire, puis renvoie cette table temporaire à l'utilisateur.

Lors de l'utilisation de la jointure 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. in on est vrai ou non renverra les enregistrements dans le tableau de gauche.

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 les conditions ne sont pas vraies, tous seront filtrés.

Supposons qu'il y ait deux tables :

Tableau 1 : tab1

id size1 102 203 30

Tableau 2 : tab2

nom de taille10 AAA20 BBB20 CCC

Deux SQL :

1、select * from tab1 left join tab2 on tab1.size = tab2.size where tab2.name='AAA'2、
select * from tab1 left join tab2 on tab1.size = tab2.size and tab2.name='AAA'

Le processus du premier SQL :

1. >à condition :

2. Filtrer la table intermédiaire
tab1.size = tab2.size
tab1.id tab1.size tab2.size tab2.name1 10 10 AAA2 20 20 BBB2 20 20 CCC3 30 (null) (null)

où condition :

Le deuxième processus SQL :
tab2.name='AAA'
tab1.id tab1.size tab2.size tab2.name1 10 10 AAA

1. Table intermédiaire

sous condition :

tab1.size = tab2.size et tab2.name='AAA' (les enregistrements de la table de gauche seront également renvoyés si la condition n'est pas vraie)

tab1.id tab1.size tab2.size tab2.name1 10 10 AAA2 20 (null) (null)3 30 (null) (null)


En fait, la clé raison des résultats ci-dessus C'est la particularité de la jointure gauche, de la jointure droite et de la jointure complète.

Que la condition on on soit vraie ou non, les enregistrements de la table de gauche ou de droite seront renvoyés, et full aura l'union des caractéristiques de gauche et de droite.

Le jion interne n'a pas cette fonctionnalité spéciale, donc les conditions sont placées sur et où, et l'ensemble de résultats renvoyé est le même.

Cet article explique la différence entre où et sur. Pour plus de connaissances connexes, veuillez faire attention au site Web php chinois.

Presse promotionnelle associée :

À propos de la méthode de compression du code CSS par PHP


PHP reçoit json et insère les données reçues Base de données


Instance de pagination PHP MySql

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