4

我是 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

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

4

1 回答 1

4

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

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

于 2011-01-28T18:45:20.420 回答