SQL - AS - 表不存在 - 1146

时间:2011-03-10 18:11:49

标签: mysql sql mysql-error-1146

我的查询是:

SELECT temp.pid FROM 
(SELECT postid, date FROM swapping AS s, post AS p 
WHERE s.mid='2' AND p.postid=s.postid)  AS temp 
WHERE temp.date = (SELECT MAX(date) FROM temp)

我收到#1146 - 表'databasename.temp'不存在

我怎样才能让它发挥作用?  谢谢。

3 个答案:

答案 0 :(得分:4)

似乎你想根据“日期”选择最后一个“pid”,其中s.mid ='2'

尝试这个(在你弄清楚pid来自哪里并纠正第一行之后)

SELECT [s? or maybe p?].pid
FROM swapping s INNER JOIN post p ON p.postid=s.postid
WHERE s.mid = '2'
ORDER BY date DESC
LIMIT(0,1)

您可能还需要按行顺序对日期列进行别名。

答案 1 :(得分:1)

我认为你的专栏不正确......

SELECT temp.pid  FROM  ( SELECT  postid, ...

应该是

SELECT temp.postid  FROM  ( SELECT  postid, ...

答案 2 :(得分:0)

@DRapp至少击中了头上的钉子。您没有在子选择中选择'pid'(如果该列存在于交换表或post表中),您将其称为temp,因此它会在那里引发某种类型的错误。