2009-10-29 3 views
1

J'utilise une instruction IF dans mon instruction mySQL SELECT et, en fonction du résultat renvoyé par l'instruction IF, j'aimerais rejoindre une autre table.Comment puis-je utiliser une ligne d'instruction mySQL SELECT IF pour JOIN une autre table?

Par exemple. SELECT nom, IF (apple = 'brown', color1, color2) AS maturité FROM pommes JOIN apple_type ON apple_type.color = maturité

Mon problème est que je reçois l'erreur msg: Colonne inconnue 'maturité' dans ' sur la clause '. Est-ce que quelqu'un sait comment je peux contourner cela pour rejoindre l'autre table en fonction du résultat de l'IF/ELSE dans la clause Select?

Répondre

6

Vous devrez dupliquer l'appel IF ici. Par exemple:

SELECT 
    name, 
    IF(apple = 'brown', color1, color2) AS ripeness 
FROM 
    apples 
    JOIN apple_type ON apple_type.color = IF(apple = 'brown', color1, color2) 
+0

comme un charme! grâce – justinl

+0

SELECT commentaires. * des commentaires REJOIGNEZ registered_domains SUR comments.domain_id = registered_domains.domain_id OÙ comments.page_id = 446 ET IF (registered_domains.'moderation' = 0, 1, comments.moderated = 1) COMMANDER PAR comment_index ASC; Bonjour Lukás, Je me demandais si vous pouviez jeter un oeil à mon instruction SQL et comprendre ce que je suis en train de faire ... parce que MySQL n'a aucune idée !! : D J'essaie de mettre une condition where en fonction du résultat d'une instruction IF. Merci pour toute aide! acclamations Ali –

+0

comme il se trouve ... Je travaillais tout le long ... merci mon ami ... acclamations ... J'aime ces trois points ...: P –

Questions connexes