2010-06-21 4 views
0

Je pense que le café n'est pas assez fort aujourd'hui. J'ai besoin d'interroger la table fb-celebotd pour obtenir le photoid correspondant au fb-celebotd.celebdate. La plupart des autres informations nécessaires dépendent de la table des photos.Erreur avec mes jointures à gauche?

Ce qui suit me donne une erreur de MySQL:

Select photos.*,photographer.name, events.eventname, events.eventhome, subevents.subeventname, photodir.photodir, fb-celebotd.celebdate, fb-celebotd.trivia 
     from photos 
LEFT JOIN fb-celebotd ON (photos.photoid = fb-celebotd.photoid) 
LEFT JOIN photodir ON (photos.photodirid = photodir.photodirid) 
LEFT JOIN photographer ON (photos.photographerid = photographer.photographerid) 
LEFT JOIN events ON (photos.eventid = events.eventid) 
LEFT JOIN subevents ON (photos.subeventid = subevents.subeventid) 
WHERE fb-celebotd.celebdate=1277092800 

Est-ce faisable dans une requête ou dois-je interroger fb-celebotd pour la PhotoID et trivia d'abord, puis d'interroger d'autres tables sur la base du PhotoID ?

Merci.

Répondre

3

Devrait fb-celebotd (avec un tiret) être fb_celebotd (avec un trait de soulignement)? Si le nom de la table comporte un tiret, vous devrez indiquer le nom de la table: "fb-celebotd". Sinon, le tiret est traité comme un signe moins et tente de soustraire celebotd de fb (tous deux inconnus).

+0

Je savais que mon café était faible. Merci pour le 2ème ensemble d'yeux. Changé le nom de la table et cela a fonctionné. – Ian

1

Si vous avez vraiment une table fb-celebotd nommé, alors vous devez citer le nom de la table à chaque fois que vous l'utilisez dans une requête:

Select photos.*,photographer.name, events.eventname, events.eventhome, subevents.subeventname, photodir.photodir, `fb-celebotd`.celebdate, `fb-celebotd`.trivia 
     from photos 
LEFT JOIN `fb-celebotd` ON (photos.photoid = `fb-celebotd`.photoid) 
LEFT JOIN photodir ON (photos.photodirid = photodir.photodirid) 
LEFT JOIN photographer ON (photos.photographerid = photographer.photographerid) 
LEFT JOIN events ON (photos.eventid = events.eventid) 
LEFT JOIN subevents ON (photos.subeventid = subevents.subeventid) 
WHERE `fb-celebotd`.celebdate=1277092800 
Questions connexes