2011-01-14 12 views
1

Ich bin dabei, eine Website zu entwickeln, die es Spielern eines bestimmten Spiels ermöglicht, ihre Levels hochzuladen und zu markieren. Das Konto jedes Spielers ist eigentlich ein Konto in den Foren, die die Website verwendet (SMF).MySQL, Aggregate SubSelect Problem

Ich bin in der Lage, alle Tags mit einer bestimmten Ebene keine Probleme zurückgeben; Ich stoße auf ein Problem, wenn ich diejenigen filtern möchte, die auf das Ergebnis dieses Subselects abgestimmt sind. Sie behauptet, die Spalte ‚taglist‘ existiert nicht ...

SELECT smf_members.realName,game_levels.*, 
     (SELECT GROUP_CONCAT(tag) 
      FROM `game_tags` 
     WHERE `game_tags`.uuid = `game_levels`.uuid) AS taglist  
    FROM `game_levels` 
INNER JOIN `smf_members` ON `smf_members`.ID_MEMBER = `game_levels`.ID_MEMBER  
WHERE taglist LIKE 'untagged'  
ORDER BY `ID_TOPIC` DESC 

Vielen Dank im Voraus. Ich habe auch versucht, eine zweite INNER JOIN in der Tags-Tabelle, die Ergebnisse durch eine normale WHERE auf game_tags.tag einzuschränken, aber dann am Ende mit einer einzigen Zeile, die alle Tags verkettet hat.

Antwort

2

Sie können keinen Spaltenalias in der WHERE-Klausel referenzieren - der früheste MySQL, der die Spaltenaliasreferenzierung unterstützt, ist GROUP BY. Verwenden Sie:

+0

Ich glaube, Sie haben mir mehr über MySQL in dieser Abfrage, die ich online in den letzten 30 Minuten gefunden habe versucht, dies herauszufinden. Vielen Dank! Das funktioniert BEYOND perfekt für mich. – Sam