2010-08-03 1 views
0

Почему я получаю эту ошибку:MySQL неизвестного столбец

1054 - Неизвестный столбец «t.type» в «списке поля»

У меня есть столбец с именем типа в моей таблице. И у меня есть «тестер» таблицы, используя псевдоним t.

SELECT y.*, 
      (SELECT COUNT(*) 
       FROM (SELECT *, 
          CASE t.type 
          WHEN 'Advanced' THEN t.type 
          ELSE 'Non-Advanced' 
          END AS group_type 
         FROM tester) x 
      WHERE x.group_type = y.group_type 
       AND (x.grade1 + x.grade2) >= (y.grade1 + y.grade2)) AS rank 
     FROM (SELECT t.name, 
        t.grade1, 
        t.grade2, 
        t.type, 
        CASE t.type 
        WHEN 'Advanced' THEN t.type 
        ELSE 'Non-Advanced' 
        END AS group_type 
       FROM tester t) y 

OMGPonies, любые идеи?

спасибо.

-Laxmidi

ответ

3

/меня порет мой лоб - моя вина, извините.

Используйте это:

SELECT y.*, 
     (SELECT COUNT(*) 
      FROM (SELECT *, 
         CASE type 
         WHEN 'Advanced' THEN type 
         ELSE 'Non-Advanced' 
         END AS group_type 
        FROM tester) x 
     WHERE x.group_type = y.group_type 
      AND (x.grade1 + x.grade2) >= (y.grade1 + y.grade2)) AS rank 
    FROM (SELECT t.name, 
       t.grade1, 
       t.grade2, 
       t.type, 
       CASE t.type 
       WHEN 'Advanced' THEN t.type 
       ELSE 'Non-Advanced' 
       END AS group_type 
      FROM tester t) y 
+0

Привет OMG пони, Это работало замечательно. Благодарю. Я прочитал CASE и КОГДА, поскольку они выше моих навыков «SELECT *». Опять же, спасибо. – Laxmidi

1

Ошибка в подзапрос - псевдоним т не определен здесь

  (SELECT *, 
      CASE t.type 
      WHEN 'Advanced' THEN t.type 
      ELSE 'Non-Advanced' 
      END AS group_type 
      FROM tester)x .... 
+0

+1: Это была ошибка моего copy'n'paste, которая виновата :( –