我需要编写一个选择查询,以从Spring数据存储库层的多个表中获取数据。我知道我们可以使用@Query编写自定义查询,但这仅从单个表中返回值吗?
SELECT s.service_id, s.name, us.rating_id
FROM services s,
ratings r,
user_services us
where
us.service_id = s.service_id and
us.rating_id = r.rating_id and
us.user_id= ?;
您的Interface方法可以使用本机SQL从多个表中选择列,并且该方法将返回对象数组的列表:
public interface MyRepository extends JpaRepository {
@Query(name = [name], nativeQuery = true)
List<Object[]> methodThatQueriesMultipleTables();
}
列表中的每个项目都是对象数组,它是一行数据
您还可以创建自定义存储库实现:
如何向Spring Data JPA添加自定义方法
@NoRepositoryBean
public interface CustomRepository<[Your object]> {
List<Object[]> methodThatQueriesMultipleTables();
}
public class MyRepositoryImpl<[Your object]> implements CustomRepository<[Your object] {
@PersistenceContext
private EntityManager entityManager;
@Override
public List<Object[]> methodThatQueriesMultipleTables() {
//use JPA query to select columns from different tables
Query nativeQuery = entityManager.createNativeQuery("query");
return query.getResultList();
}
}
问题内容: 如何编写SQL语句从三个表中选择数据? 问题答案: 使用联接 这将要求每个表都有一个table_1_id键,并且每个表中都有一个条目。 如果table_2或table_3可能没有数据,但您仍想显示来自table_1的数据,则可以使用LEFT JOIN
我试图从获取数据。总共有9个表格,我必须相应地从所有表格中显示产品列表。 我考虑过使用连接,并尝试了左连接,如下所示: 这里是主表,pid是从tbl2到tbl9的所有表的。 注意:这里我在所有表上使用了来避免长查询,但是在实际的数据库操作中,只提到特定的列来提高性能。 现在实际的问题是,我没有得到所有的记录从表使用左加入。只检索中对应的每个条目的最后一行。 我使用了GROUP BY来避免重复的左连
问题内容: 我想根据URL字符串选择一些ID,但对于我的代码,它仅显示第一个。如果我写手册的ID是伟大的。 我有这样的网址http://www.mydomain.com/myfile.php?theurl=1,2,3,4,5(ids) 现在在myfile.php中,我有sql连接,并且: 如果我使用这个: 我得到正确的结果。现在,如果我使用下面的代码,它将无法正常工作: 有什么建议? 问题答案:
问题内容: 产生5行(5个数组),是一行中唯一的唯一字段。重复( 在这里 重复3次。 )我如何摆脱这些重复? 编辑: 我想要和所有为每个饮料。 问题答案: 您在这里所做的称为a (尽管您是隐式执行的,因为您是从多个表中选择的)。这意味着,如果您未在WHERE子句中放置任何条件,则您将拥有这些表的 所有组合 。仅根据您的条件,您才可以将联接限制为饮料ID匹配的行。 但是,如果有X张包含此特定Drin
表 1:发票(inv_id、inv_value、cust_id) 表 2:客户(cust_id、sales_rep) 表 3:成员(Member_id、member_cateogry、member_type、cust_id) 注1:每个客户支付多张发票。(一对多关系)。< br >注2:每个客户为一个或多个会员付费(因此一个客户可能与多个会员相关)。< br >注3:每个成员都有一个类别,可以是1
问题内容: 好的,这是我的难题,我建立了一个数据库,其中包含约5个表,所有表的数据结构完全相同。出于本地化的目的,以这种方式分离了数据,并总共分割了约450万条记录。 在大多数情况下,只需要一张桌子就可以了。但是,有时需要两个或多个表中的数据,并且需要按用户定义的列对数据进行排序。这就是我遇到的问题。 数据列: MySQL陈述: MySQL吐出这个错误: 显然,我做错了。有人愿意为我阐明一下吗?