Tout afficher avec INNER JOIN

random_guy -  
DROE Messages postés 148 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je voudrais savoir comment afficher tous les résultat d'une requête avec INNER JOIN même si une jointure et vide, voici un exemple pour être plus claire :



J'ai trois tables:


news ()
news_photos()
photos()


voici la requete type:


SELECT *
FROM news AS n
INNER JOIN news_photos AS np ON np.id_news = n.id_news
INNER JOIN photos AS p ON p.id_photo = np.id_photo;



Cette requête fonctionne bien, le seul problème c'est qu'elle me retourne uniquement les news qui ont des photos ! Je voudrais qu'elle me retourne également les news qui n'ont pas de photos.


Merci ! ;)

3 réponses

blux Messages postés 27135 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

INNER JOIN fait une équijointure, pour le reste, il y a LEFT JOIN et RIGHT JOIN en fonction du côté où tu te places...
1
mustapha
 
tu peux garder ta requete comme il est tout en remplacant les jointures internes par les jointures externes et tu auras ce que tu veux:
remplace la premiere inner join par left join
remplace la deuxième inner join par right join

si ca marche pas tu fais le contraire
dans certains cas les deux jointures externes sont du même coté

bonne chance
0
DROE Messages postés 148 Date d'inscription   Statut Membre Dernière intervention   48
 
Hello,

jette un coup d'oeil à ces petites images ensemblistes, ensuite les jointures ne seront plus un secret pour toi :)

http://www.dba-ora.fr/article-jointures-sql-106444907.html

DROE
0