Requête SQL avec une table vide

Fermé
MrBenji Messages postés 18 Date d'inscription samedi 12 juin 2010 Statut Membre Dernière intervention 27 mai 2014 - 27 mai 2014 à 23:41
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 28 mai 2014 à 12:25
Bonsoir,

Je cherche depuis quelque temps une solution pour prendre en compte le résultat d'une requête dans une table même si elle est, pour le moment, vide en joignant d'autre tables mais je fini par croire que c'est impossible.

Explication simplifié:

J'ai 3 tables, deux tables ALPHA et BRAVO qui ne sont pas vides et une autre CHARLIE qui elle est vide(car les données seront remplis par les membres plus tard)

Je veux faire une requête de tel sorte à se que le résultat me renvoie les données des tables ALPHA et BRAVO mais aussi les donnés de la table CHARLIE quand ils existent car une requête de se type ne renvoie bien évidement rien si tel est le cas:
[/contents/1068-sql-commande-select SELECT] * FROM alpha
INNER JOIN bravo
   ON bravo.id = alpha.id
INNER JOIN charlie
   ON charlie.id = alpha.id
WHERE alpha.id = '.$id.'


J'ai aussi essayer des sous-requêtes dans le WHERE, les conditions EXISTS et NOT EXISTS,... mais les résultats se sont révélés peu concluant.

Merci de votre aide.

1 réponse

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
28 mai 2014 à 12:25
Bonjour,
SI tu veux toujours un résultat, peut importe que Charlie existe ou non, il te suffit de faire une jointure
left outer join
au lieu de ton
 inner join
(Juste pour la jointure avec Charlie).

SELECT * FROM alpha
INNER JOIN bravo
ON bravo.id = alpha.id
LEFT OUTER JOIN charlie
ON charlie.id = alpha.id
WHERE alpha.id = '.$id.'
0