MySQL - 如何向子查询添加别名语法

时间:2011-01-28 18:42:20

标签: mysql mysql-error-1064 in-subquery

我是MySQL的新手,但仍然存在语法问题。我有这个问题:

SELECT a, b, c, d, e
FROM table1
WHERE status = 'skipped' 
AND batchid IN (SELECT batchid 
                FROM (SELECT distinct batchid, date_format(uploaddate, '%Y-%m-%d') 
                      FROM table1 
                      WHERE uploaddate > '2011-01-26') AS t
               ) AS t;

这给了我这个错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as t' at line 1

IN子句有效:

SELECT batchid 
FROM (SELECT distinct batchid, date_format(uploaddate, '%Y-%m-%d') 
      FROM table1 
      WHERE uploaddate > '2011-01-26') AS t

我认为我的问题与第二个表别名有关。有人能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:4)

WHERE子句中出现的子查询不需要别名。

离开最后的AS t(在分号之前),一切都应该很好。