残念ながら、私は SQL があまり得意ではないので、これで問題が発生しても驚くことではありませんが、問題を解決するのを手伝っていただければ (1 つのクエリである必要はありません)、私は感謝します。PythonでMySQLdbを使用していくつかのTwitterデータを分析しようとして、私は実行しています:
for u_id in list:
"
select e.user_id
from table_entities e
inner join table_tweets t on e.id = t.id
where e.type='mention' and t.user_id=%s
group by e.type having count('hashtag') < 3
"
%
(u_id)
(Python 構文は、重要でないものを表示しないようにわずかに偽造されています)
これで、「group by」ステートメントの前のすべてが正常に機能します。特定のツイートで言及されている user_ids を抽出できます (id は table_tweets の PK ですが、言及、ハッシュタグ、または URL ごとに table_entities に別の行があります) ループの現在の位置に一致します。
しかし、私はそれをどこでも正しくフォーマットしているとは思いません.group byステートメントは何もしません。つまり、type=hashtag の table_entity に 3 つ以上のエントリを持つツイート (id) に属するすべての user_id を除外します。実際にはid列を参照していないため、そのままでは機能しないことがわかりますが、それを実行しようとした方法(たとえば、結合句の一部にしようとするなど)構文エラーをスローします。
アドバイスをいただければ幸いです。