La requête SQL ne renvoie pas toutes les lignes avec la jointure gauche
Cette requête vise à récupérer toutes les lignes de la table jos_hp_properties (abrégée en pr) ainsi avec la valeur de la table jos_hp_properties2 (abrégée en pr7), où le champ nommé field est égal à 23 dans ce dernier tableau. Cependant, la requête actuelle ne renvoie qu'une seule ligne, bien que la table jos_hp_properties contienne 27 lignes.
Pour résoudre ce problème, la clause WHERE doit être déplacée vers l'instruction JOIN, comme suit :
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
Avec cette requête modifiée, la clause WHERE ne restreint plus l'ensemble de résultats avant la jointure. Au lieu de cela, les lignes de la table jos_hp_properties seront incluses même s'il n'y a aucune ligne correspondante dans la table jos_hp_properties2 pour le champ 23 (auquel cas la valeur renvoyée sera NULL). Cela garantit que toutes les lignes de la première table sont renvoyées, ainsi que les données souhaitées de la deuxième table, le cas échéant.
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!