2010-08-04 99 views
0

我有一个mySQL语句来选择一些数据并进行排名。MySQl:如何在排名子查询中排除行

我想记录'鲍勃',例如,选中但未包含在排名中。所以,我需要在主select语句中返回Bob的行,但是我需要将Bob从处理排名的子SELECT中排除。我需要Bob的数据,但是,他不应该被计入排名中。

我试过AND t.name !='Bob'WHERE x.category = t.category之后但是,这不起作用。

SELECT  t.name, 
      t.category, 
      t.score1, 
      t.score2, 
    (SELECT COUNT(*) 
    FROM my_table x 
    WHERE x.category = t.category 
    AND (x.score1 + x.score2) >= (t.score1 + t.score2) 
    ) AS rank 

    FROM my_table t ORDER BY rank ASC 

有什么建议吗?

谢谢。

-Laxmidi

回答

0

你应该使用AND x.name != 'Bob'代替t.name

+0

嗨琥珀,我错过了。谢谢您的帮助。 – Laxmidi 2010-08-04 02:45:19