为什么我不能创建临时表然后立即加入它呢?
mysql> CREATE TEMPORARY TABLE table2 as (select in_reply_to_id, COUNT(in_reply_to_id) as C from mentions where in_reply_to_id>0 group by in_reply_to_id);
查询OK,影响了57149行(0.14秒) 记录:57149重复:0警告:0
mysql> select T.tweet_id, T.favorite_count, T.retweet_count, T2.C from
-> tweets AS T JOIN table2 AS T2
-> on T.tweet_id = T2.in_reply_to_id;
ERROR 1146(42S02):表'twitter_analysis.table2 as'不存在 MySQL的>
但确实存在,因为我可以从中进行选择!
select count(*) from table2;
57149 1排(0.01秒)
这个错误非常令人沮丧。 有没有办法将此临时表放入选择查询?
答案 0 :(得分:1)
你可以把它放在像这样的查询中
select T.tweet_id, T.favorite_count, T.retweet_count, T2.C
FROM tweets T
JOIN
( SELECT in_reply_to_id, COUNT(in_reply_to_id) as C
FROM mentions
WHERE in_reply_to_id>0
GROUP BY in_reply_to_id
) T2 on T.tweet_id = T2.in_reply_to_id;
你可以尝试从临时表中选择并将其他表连接到它。
答案 1 :(得分:1)
您可以将它们放在一个查询中:
select T.tweet_id, T.favorite_count, T.retweet_count, T2.C from
tweets T JOIN (select in_reply_to_id, COUNT(in_reply_to_id) as C from mentions where in_reply_to_id>0 group by in_reply_to_id) T2
on T.tweet_id = T2.in_reply_to_id;