Maison > base de données > tutoriel mysql > Pourquoi ma jointure gauche ne renvoie-t-elle pas toutes les lignes de la table de gauche ?

Pourquoi ma jointure gauche ne renvoie-t-elle pas toutes les lignes de la table de gauche ?

Patricia Arquette
Libérer: 2024-12-28 15:01:14
original
999 Les gens l'ont consulté

Why Doesn't My Left Join Return All Rows From the Left Table?

La jointure gauche ne renvoie pas toutes les lignes : résoudre le problème

Comme indiqué dans un fil de discussion précédent, l'absence de toutes les lignes dans une jointure gauche la requête peut provenir d’une clause WHERE mal placée. Dans ce cas, une requête vise à extraire les données de la table 'jos_hp_properties' et éventuellement à sélectionner une valeur nommée 'room_price_high' dans la table 'jos_hp_properties2' en fonction de la colonne de champ étant égale à 23.

Pour résoudre ce problème et assurer le retour de toutes les lignes de la première table, la condition WHERE doit être déplacée de sa position d'origine après le LEFT OUTER JOIN dans la clause JOIN elle-même. La requête modifiée devrait ressembler à ceci :

SELECT pr.*, pr7.value AS `room_price_high`
  FROM `jos_hp_properties` pr
       LEFT JOIN `jos_hp_properties2` pr7 
       ON pr7.property=pr.id
   AND 
       pr7.field=23
Copier après la connexion

En incorporant la condition WHERE dans le JOIN, la requête devient plus explicite et demande à la base de données de récupérer uniquement les lignes de la deuxième table où la colonne du champ est égale à 23. . Cela garantit que toutes les lignes de la première table sont renvoyées, qu'une valeur correspondante existe ou non dans la deuxième table. Par conséquent, les valeurs NULL correspondantes seront renvoyées pour les lignes de la première table qui n'ont pas de ligne correspondante dans la deuxième table en fonction du critère field=23.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal