gpt4 book ai didi

mysql - Ebean ManyToMany : Model A has ManyToMany . select count(*) B where B in A's List

转载 作者:行者123 更新时间:2023-11-29 13:10:42 27 4
gpt4 key购买 nike

该应用程序允许用户选择某些关键字(我们监控 TwitterStream)

每个关键字都包含包含其关键字的推文 ID 列表。

public class Keyword extends Model {

@Id
int id;
String keyword;

@ManyToMany
public List<Tweet> tweets = new ArrayList();
}

public class Tweet extends Model {

@Id
int id;
TimeStamp datetime;
}

我想通过 select count(*)、日期时间按天对它们进行分组来获取有关每个关键字每天执行情况的一些数据。下面的 SQL 查询将完成我的需要。

select datetime, count(*) from tweet t left outer join keyword_tweet on t.id=keyword_tweet.tweet_id group by cast(t.datetime as date) having t.datetime > '2014-02-02';

+---------------------+----------+
| datetime | count(*) |
+---------------------+----------+
| 2014-02-02 13:27:45 | 1 |
| 2014-02-08 05:14:04 | 2 |
| 2014-02-09 08:34:31 | 1 |
| 2014-02-12 12:42:02 | 1 |
| 2014-02-13 06:00:09 | 2 |
| 2014-02-14 00:47:04 | 2 |
| 2014-02-15 07:26:30 | 6 |
| 2014-02-16 01:00:00 | 21 |
| 2014-02-17 00:06:50 | 916 |
| 2014-02-18 18:08:56 | 1 |
| 2014-02-19 01:28:40 | 1 |
| 2014-02-24 16:45:11 | 1 |
| 2014-02-26 14:43:54 | 4 |
| 2014-02-27 08:24:09 | 9 |
| 2014-02-28 05:08:16 | 411 |
+---------------------+----------+

如何从 Tweet.id 为 IN Keyword.tweets 的推文中选择 *?

另外,在 Ebean 中我如何获得仅包含日期和计数(*)的列表?

谢谢大家!

最佳答案

您可以使用以下内容:

Keyword targetKeyword = Keyword.find.byId(1L);
List<Tweets> foundTweets = new ArrayList<Tweets>();
for(Tweet tw : Tweets.find.all()) {
if(targetKeyword.tweets.contains(tw))
foundTweets.add(tw);
}
return foundTweets;

此代码将返回关键字 ID 号 1 中包含的所有推文。您可以将其放置在传递所需关键字 ID(而不是 1L)的函数中。

关于mysql - Ebean ManyToMany : Model A has ManyToMany<Model B> . select count(*) B where B in A's List<B>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22140336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com