Jointure et ligne vide

Résolu/Fermé
cham33 - 20 oct. 2014 à 10:43
 cham33 - 20 oct. 2014 à 14:43
Bonjour,

j'essaye de faire deux jointure entre plusieurs table , le problème est que parfois l'une des mes jointure peut ne contenir aucun résultat , du coup lorsque c'est le cas la requête entière se stop(?) et ne m'affiche plus rien (page vide).

mes jointures:
$id = intval($_GET['id']);

$article = $DB->query('SELECT article_texte,username,nombre_commentaire FROM article
INNER JOIN users ON users.id = article_user_id
INNER JOIN article_statistique ON stats_article_id = '.$id.'
WHERE article_id = '.$id.'
');


Si l'article n'a aucun commentaire, la deuxième jointure ne trouvera aucune ligne a la table article_statistique correspondant a l'ID de l'article, ça c'est logique. mais ce que je ne comprends pas c'est que le fait de n'avoir aucune ligne sur cette jointure me bloque toute la requête..

J'ai beau essayer de chercher comment contrer çà je ne trouve pas de solution....

merci d'avance pour votre aide.
A voir également:

2 réponses

jee pee Messages postés 40225 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 septembre 2024 9 333
Modifié par jee pee le 20/10/2014 à 11:22
Salut,

Parce que tu n'as pas établi le lien entre article et article_statistique. Il ne faut pas utiliser $id mais article_id. Et si la requete peut ne rien ramener, il faut utiliser une jointure externe (outer join)

LEFT OUTER JOIN article_statistique ON stats_article_id = article_id


cdlt
        Un étranger, c'est un ami qu'on n'a pas encore rencontré.
1
Impec , merci !
0