1

我的查询是:

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' 不存在

我怎样才能让它工作?谢谢你。

4

3 回答 3

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)

您可能还需要按行为日期列添加别名。

于 2011-03-10T18:22:58.713 回答
1

我认为您的列不正确...

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

应该

SELECT temp.postid  FROM  ( SELECT  postid, ...
于 2011-03-10T18:19:42.507 回答
0

@DRapp 至少一针见血。您没有在您称为 temp 的子选择中选择“pid”(如果该列存在于交换表或 post 表中),因此它会在那里引发某种类型的错误。

于 2011-03-10T18:22:31.000 回答