我的查询是:
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' 不存在
我怎样才能让它工作?谢谢你。
我的查询是:
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' 不存在
我怎样才能让它工作?谢谢你。
似乎您想选择最后一个“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)
您可能还需要按行为日期列添加别名。
我认为您的列不正确...
SELECT temp.pid FROM ( SELECT postid, ...
应该
SELECT temp.postid FROM ( SELECT postid, ...
@DRapp 至少一针见血。您没有在您称为 temp 的子选择中选择“pid”(如果该列存在于交换表或 post 表中),因此它会在那里引发某种类型的错误。