恐怕我在 SQL 方面并没有什么大的动摇,所以我对此有问题并不感到惊讶,但如果你能帮助我让它工作(甚至不必是一个查询),我会很感激。试图在 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,而 table_entities 中每个提及、主题标签或 URL 都有另一行)匹配我循环的当前位置。
但是——而且我认为我没有正确地格式化它—— group by 语句没有做任何事情。我的意思是排除所有属于推文(ids)的user_ids,这些user_ids 在table_entity 中有3 个或更多条目,type=hashtag。我可以说它不会按原样工作,因为它实际上并不引用 id 列,而是我尝试过的任何方式(例如,通过尝试使其成为 join 子句的一部分)引发语法错误。
建议表示赞赏!