Tout afficher avec INNER JOIN

Fermé
random_guy - 14 juin 2012 à 11:36
DROE Messages postés 148 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 26 juillet 2012 - 16 juin 2012 à 20:12
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 ! ;)
A voir également:

3 réponses

blux Messages postés 26569 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 3 janvier 2025 3 323
14 juin 2012 à 17:01
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
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 mardi 5 mai 2009 Statut Membre Dernière intervention 26 juillet 2012 48
16 juin 2012 à 20:12
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