【发布时间】:2021-10-27 17:45:56
【问题描述】:
@Query(value="
select * from (select * from Post WHERE Post.id < :lastPostId) as p
JOIN Follower f ON(f.to_id = p.user_id) WHERE f.from_id = :#{#currentUser.id}
UNION
select * from (select * from Post WHERE Post.id < :lastPostId) as p
JOIN public.user u ON(u.group_id = :#{#currentUser.group.id})"
List<Post> getNewsFeedPosts(User currentUser,Long lastPostId);
您好,我正在尝试合并两个查询,但我遇到了异常,所以合并没有相同数量的列。
谁能帮忙,也许如何改进查询
【问题讨论】:
-
我猜这是因为您将列连接到两个表中,而在您的选择 *.尝试在您的选择中指定 clumns。
-
正如 Ruud 所说,当您 UNION 两个 select 语句时,两个语句返回的列的数量和顺序必须相同。尝试独立运行这两个语句,您应该会看到每个返回的列不一样。
标签: java sql spring spring-boot jpa