2017-02-09 5 views
0

Ich versuche Abfrage mit WHERE Erklärung zu bekommen:Unbekannte Spalte innerhalb mysql query

SELECT t1.username, t1.user_type, 
    COALESCE(t2.num_appearences, 0) AS `color` 
    FROM user t1 
    LEFT JOIN 
    (
     SELECT username, process, COUNT(DISTINCT username, process) AS num_appearences 
     FROM user_project 
     GROUP BY username 
    ) t2 
    ON t1.username = t2.username WHERE `color` IN ('0') GROUP BY username 

Das Problem ist, es gibt mir eine Fehlermeldung: #1054 - Unknown column 'color' in 'where clause' Wenn ich mit einer anderen Spalte versuchen Sie es außer color Spalte funktioniert. Wie kann ich dieses Problem lösen?

+0

Warum sind Sie die Auswahl 'process' in der Unterabfrage, wenn Sie es nicht überall verwenden. – GurV

Antwort

1

Sie können keine Verbündeten in where-Klausel verwenden, Aliase können in GROUP BY-, ORDER BY- oder HAVING-Klauseln verwendet werden.

Reference

Abfrage ersetzen mit

SELECT t1.username, t1.user_type, 
COALESCE(t2.num_appearences, 0) AS `color` 
FROM user t1 
LEFT JOIN 
(
    SELECT username, process, COUNT(DISTINCT username, process) AS num_appearences 
    FROM user_project 
    GROUP BY username 
) t2 
ON t1.username = t2.username GROUP BY username HAVING `color` IN ('0')  
Verwandte Themen