Frage

Ich bin im Begriff, eine Website zu entwickeln, dass die Spieler von einem bestimmten Spiel ermöglicht, ihre Ebene und Tag um sie zu laden. Jedes Spielerkonto ist eigentlich ein Konto in den Foren, dass die Website verwendet (SMF).

Ich bin in der Lage, alle Tags mit einer bestimmten Ebene keine Probleme zurückzukehren; Ich laufe in ein Problem, wenn ich diese Anpassung auf dem Ergebnis dieser subselect filtern möge. 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 eine zweite INNER JOIN auf der Tags-Tabelle versucht zu tun, die Ergebnisse Verengung durch eine regelmäßige WHERE auf game_tags.tag, aber dann habe ich mit einer einzigen Reihe am Ende, dass alle Tags verketteten hat.

War es hilfreich?

Lösung

Sie können keine Spalte Alias ??in der WHERE-Klausel verweisen - die früheste MySQL unterstützt Spalte alias Referenzierung der GROUP BY ist. Verwendung:

  SELECT sm.realName, 
         gl.*,
         x.taglist
    FROM GAME_LEVELS gl
    JOIN SMF_MEMBERS sm ON sm.id_member = gl.id_member
    JOIN (SELECT gt.uuid,
                 GROUP_CONCAT(gt.tag) AS taglist
            FROM GAME_TAGS gt
        GROUP BY gt.uuid) x ON x.uuid = gl.uuid
   WHERE x.taglist LIKE 'untagged'    
ORDER BY ID_TOPIC DESC
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top