MySQL无法加入临时表

时间:2014-12-22 16:31:40

标签: mysql

为什么我不能创建临时表然后立即加入它呢?

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秒)

  

这个错误非常令人沮丧。 有没有办法将此临时表放入选择查询?

2 个答案:

答案 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;