Java JPA:按和加入并分组。MySQL查询
我有两张表:Java JPA:按和加入并分组。MySQL查询,java,mysql,jpa,join,Java,Mysql,Jpa,Join,我有两张表:销售和产品 [Products] +-------+-------------------+ | id | name | +-------+-------------------+ | 1 | product number 1 | | 2 | product number 2 | | 3 | product number 3 | +-------+-------------------+ [Sales] +-------
销售
和产品
[Products]
+-------+-------------------+
| id | name |
+-------+-------------------+
| 1 | product number 1 |
| 2 | product number 2 |
| 3 | product number 3 |
+-------+-------------------+
[Sales]
+-------+------------+------+
| id | product_id | qty |
+-------+------------+------+
| 1 | 2 | 100 |
| 2 | 2 | 35 |
| 3 | 1 | 1 |
+-------+-------------------+
我想用JavaEE和JPA显示如下内容:
Most selled products :
+------------------+------------+
| Product name | Quantity |
+------------------+------------+
| product number 2 | 135 |
| product number 1 | 1 |
+------------------+------------+
我面临两个问题:
- 我只知道如何检索对象,因此可以显示产品名称,但不能显示销售数量,因为这是一个计算值
- 我不知道如何查询我的数据库来检索正确的信息
public List<Product> getMostSelledProducts() {
Query q = em.createQuery("SELECT p FROM Sale s RIGHT JOIN Product p GROUP BY s.productId ORDER BY COUNT(s.productId)");
return q.getResultList();
}
public List getMostSelledProducts(){
Query q=em.createQuery(“从销售中选择p,按s.productId按计数加入产品p组(s.productId)”);
返回q.getResultList();
}
我应该如何做这样的事情?不确定这是否可行,没有测试它,但如果它不起作用,可能会让您走上正确的道路
SELECT p.name, SUM(s.qty) as Quantity FROM Sales s
INNER JOIN Product p ON s.product_id = p.id
GROUP BY s.product_id
ORDER BY Quantity DESC
不确定这是否可行,没有测试它,但如果它不起作用,可能会使您走上正确的道路
SELECT p.name, SUM(s.qty) as Quantity FROM Sales s
INNER JOIN Product p ON s.product_id = p.id
GROUP BY s.product_id
ORDER BY Quantity DESC
谢谢:)那么,应该是什么样的回应呢?我不能退回产品,因为我会丢失数量信息…你能只退回一个列表而不是列表吗?谢谢:)但是,那么,回复的类型应该是什么?我不能退回产品,因为我会丢失数量信息…你能不能只退回一份清单而不是清单?