这是我的简化数据库:
user_post
- id
- post_id (FK)
post
- id
- link_id (FK)
link
- id
我有一个列表,user_post
我想为他们每个人link
都链接到。
目前,我这样做是这样的:
SELECT userPost.post.link FROM UserPost userPost WHERE userPost IN (:userPosts)
效果很好,但也许以后,我会得到大量的user_post
,因此子句中会有很多值IN
(100 < x < 5000+)。
有IN
限制吗?还有其他方法吗?之前,我是这样做的:
for (UserPost userPost : user.getUserPosts()) {
Link link = userPost.getPost().getLink();
//
}
但是上面的解决方案确实需要很多时间才能执行,所以我正在寻找一个更优化的解决方案。