我知道这里有很多类似的线程,但是我找不到适合我的情况的线程。mysql group by return a set
我在找的是一个mysql语句,它允许我通过user_id进行分组并返回最大id集(id不是唯一列)。
这里是我的数据:
id url_id submit_date engine status message
14738 3629 2009-01-02 18:43:55 0pn 10 NULL
14738 3629 2009-01-02 18:43:55 Abacho 10 NULL
14738 3629 2009-01-02 18:43:55 Acoon 10 NULL
14739 3629 2009-01-02 18:43:55 Alexa 10 NULL
14739 3629 2009-01-02 18:43:55 Amfibi 10 NULL
14739 3629 2009-01-02 18:43:55 Burf 10 NULL
14740 4115 2009-01-02 18:43:55 0pn 10 NULL
14740 4115 2009-01-02 18:43:55 Abacho 10 NULL
14740 4115 2009-01-02 18:43:55 Acoon 10 NULL
14741 4115 2009-01-02 18:43:55 Alexa 10 NULL
14741 4115 2009-01-02 18:43:55 Amfibi 10 NULL
14741 4115 2009-01-02 18:43:55 Burf 10 NULL
这里是我的SQL语句:
SELECT * FROM table WHERE url_id IN (3629,4115) group by url_id having max(id);
的问题是,该声明只输出只有顶级的搜索引擎的那一套。我需要包含在该ID集中的所有搜索引擎。我也不想使用嵌套的SQL语句,因为它会导致相当显着的性能下降。
我知道我提到过我不想嵌套语句,但是这个查询没有办法。它在具有377K结果的数据库中以1.3秒的时间返回了我的结果。谢谢! – greatwitenorth 2012-03-14 14:12:30
我们欢迎队友... :) – Teja 2012-03-14 14:14:22
我需要2点morev to upvote – greatwitenorth 2012-03-15 15:16:07