2010-08-03 62 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