【发布时间】:2015-06-16 22:33:49
【问题描述】:
我有两张桌子:
twitterusers 表
twitter 增长表
我正在尝试加入这 2 个表,从 twitteruser 获取所有字段并从 twittergrowth 获取选择性字段,然后仅从该数据中获取最后 3 行。
预期输出:
电流输出:
即行在重复。我想要由 ID 或用户名以及最后一组时间戳唯一的行。所以它将是最后 3 行,具有最新的时间戳。
我可以乱写的代码是:
SELECT
t1.*,
t2.new_followers_count,
t2.new_friends_count,
t2.new_timestamp
FROM twitterusers t1
JOIN twittergrowth t2 on (t1.username=t2.username)
搜索了相当多的页面/站点,但无法真正弄清楚如何去做。我将不胜感激任何帮助。 :)
另外,我想在最终结果中添加一个LIMIT 参数,以便对完整结果进行分页。
【问题讨论】:
-
我目前使用
GROUP BY获得前 3 行,而我正在寻找最后 3 行。new_timestamp是变化的变量。虽然它在图像中被部分裁剪了。 -
如果我添加一个
ORDER BY t2.new_timestamp会安排结果,但我不能再使用GROUP BY来避免重复。 Mysql 不允许在GROUP BY之前使用ORDER BY。所以我基本上被卡住了。 -
为什么所有用户都得到相同的user_id?你想通过这个 id 和用户名组合唯一的行吗?
-
这是从单个 user_id 输入的转储数据。我很抱歉。用户 ID 会有所不同。
-
是的,我希望行通过 user_id 和 username 比较是唯一的,这会为每行提供最新的
new_timestamp字段。