1

次の表を検討してください。

tweets                                retweets
----------------------------------    --------------------
id  id_str             retweet_cnt    id id_str
----------------------------------    --------------------
1   46604457684901888                 1  46604457684901888
2   46556513103388672                 2  46604457684901888
3   46294368197427200                 3  46604457684901888
                                      4  46556513103388672
                                      5  46556513103388672

UPDATE tweets.retweet_cnt各 (varchar)id_strで何回発生するかを数えたいと思いretweetsます。誰でもこのクエリを手伝ってもらえますか? 重要: (例の場合のように) inが in に表示されid_str ない可能性があります。その場合、ゼロ ( ) を返す必要があります。retweets462943681974272000

どんな助けでも大歓迎です。

4

2 に答える 2

2

on tweets を使用して、UPDATEID ごとのリツイート数に参加できます。

update tweets t
left join (select id_str, count(id) as id_count
           from retweets r group by id_str) r
  on r.id_str = t.id_str
set t.retweet_cnt = coalesce(r.id_count, 0);

デモ: http://www.sqlfiddle.com/#!2/38e98/1

于 2012-07-25T16:47:16.643 に答える
0
SELECT t.id_str, COUNT(r.id)
FROM tweets t
  LEFT JOIN retweets r
  ON t.id_str = r.id_str
GROUP BY t.id_str
于 2012-07-25T16:44:07.500 に答える