[MySQL] - Problème aux extrêmes...

- Problème aux extrêmes... [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 18-04-2008 à 22:28:41    

Bonsoir à tous,
 
J'aimerais ramener avec une seule requête 2 identifiants de ma table de Concert.
Ceux-ci doivent être définis comme étant les identifiants des concerts bornant celui passé en paramètre. Voici la requête que j'ai faite :
 
SELECT      Prev.Id AS PrevConc,
  Next.Id AS NextConc
FROM      Concert AS This,
                Concert AS Prev,
  Concert AS Next
WHERE     This.Id = monparam
AND       This.Date_concert > Prev.Date_concert
AND       This.Date_concert < Next.Date_concert
ORDER BY   Prev.Date_concert DESC, Next.Date_concert ASC
LIMIT        0, 1
 
Cette requête fonctionne sauf aux extrémités.
Si je passe en paramètre l'identifiant du dernier concert, la requête ne me renvoie rien alors que j'aimerais qu'elle me retourne :
IdPrecedent,  NULL
Pareil pour le premier :
NULL, IdSuivant
 
Quelqu'un a une idée ?
Merci d'avance !

Reply

Marsh Posté le 18-04-2008 à 22:28:41   

Reply

Marsh Posté le 19-04-2008 à 00:02:54    

deja essaie de voire sans les limit ....

Reply

Marsh Posté le 19-04-2008 à 03:00:45    

utilise des jointures ouvertes (left outer join)

Reply

Marsh Posté le 19-04-2008 à 10:07:18    

weed a écrit :

deja essaie de voire sans les limit ....


justement elle fonctionne le reste du temps...
 
 
MagicBuzz, ok mais je vois pas comment on peut faire.
FROM      Concert AS This
LEFT OUTER JOIN Concert AS Prev
LEFT OUTER JOIN Concert AS Next  
?
 
Sur les jointures externes il faut bien une clause ON non ?
LEFT ... ON This.Date_concert > Prev.Date_concert
LEFT ... ON This.Date_concert < Next.Date_concert  
?

Reply

Marsh Posté le 19-04-2008 à 11:22:33    

oui

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed