2010-08-03 63 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和WHEN,因爲它們超出了我的'SELECT *'級別的技能。再次,謝謝。 – Laxmidi 2010-08-03 23:55:59

1

子查詢錯誤 - 別名T不是這裏定義

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

+1:這是我的copy'n'paste錯誤,這是責怪:( – 2010-08-03 23:53:28