当前位置: 首页 > 知识库问答 >
问题:

如何使用内部连接数据库查询获得最低价格[关闭]

端木夕
2023-03-14

我有三个数据库表

%1调用存储
%2调用产品存储
%3调用产品

在STORE表中我们保存商店信息
在PRODUCT表中我们有所有没有被任何人挑选用于销售的产品
在PRODUCT STORE中我们有销售者选择销售的产品
-----------------
STORE---->; 列[StoreId],[StoreName]
-----------------
产品---->gt; 列[ProductId],[ProductName],[ProductCategory]
-----------------
StoreProduct---->; 列[StoreProductId],[ProductId],[StoreId],[ProductPrice]
-----------------

我们有5个商店叫做ST1,ST2,ST3,ST4,ST5

,我们有5个产品叫做P1,P2,P3,P4,P5

ST1以100$

ST2以120$

ST3以130$

ST4以140$

ST5以110$

ST1以100$

ST1以100$

ST1以140$

ST2以120$

ST3以130$

ST4以140$

ST3以140$

ST3以140$

ST3以140$

ST3以 5以110$

出售P3

等等,以此类推

例如

我想获得以最低价销售P1的商店的信息
所以在我们的示例中是ST1以最低价销售它,以此类推所有产品

共有1个答案

翁心思
2023-03-14
SELECT ProductName, minprice, GROUP_CONCAT(StoreName SEPARATOR ', ') AS stores
FROM (SELECT ProductId, ProductName, MIN(ProductPrice) AS minprice
      FROM store
      NATURAL JOIN product
      NATURAL JOIN storeproduct
      GROUP BY ProductId) _
NATURAL JOIN storeproduct
NATURAL JOIN store
WHERE storeproduct.ProductPrice = minprice
GROUP BY ProductId;

这将执行内部选择以从所有存储中查找最小productprice.
然后外部选择将查找productprice等于最小Price的所有(productname,minprice,storename)元组。
最后,它使用GROUP_CONCAT将所有storename连接到一个字段中。

示例输出:

+-------------+----------+----------+
| productname | minprice | stores   |
+-------------+----------+----------+
| P1          |       90 | ST5, ST4 |
| P2          |      100 | ST1      |
| P3          |      101 | ST1      |
| P4          |      100 | ST1      |
| P5          |      100 | ST1      |
+-------------+----------+----------+
 类似资料:
  • 问题内容: 我在hibernate状态下使用jpa。我有以下方法: 可以,但是它关闭了与数据库的连接。当秒被执行时 引发什么原因 我的配置: 编辑 我不知道为什么“ firstJDBCTemplateQuery”关闭数据库连接。如何解决这个问题? 堆栈跟踪: 编辑 我检查了堆栈跟踪。 编辑 我用 是 是 编辑调试结果 : 启动Beginin交易: /////////////////////////

  • 问题内容: 目标 在数据库中选择每种产品的最低/最高价格。 问题 我只能获得具有指定标识符的产品。 我有的 我正在使用 MySQL, 并且有以下查询: 我的回报是,和。 解决方案 谢谢您的帮助。上面的两个答案都是正确的-但我选择@GordonLinoff答案被接受,因为我认为这将对初学者更加有用和享受-‘’但真的要感谢你们两个人。 最终查询: 干杯! 问题答案: 首先,使用时,即使MySQL不需要

  • 我有一个用spring boot Version1.5.x编写的项目,它连接到一个MariaDB数据库和几个表,它们之间有大量的关系。为了查询数据库,我使用org.springframework.data.jpa.repository中提供的JpaSpecificationExecutor接口。我们使用规范的原因是为了构建动态查询,而不必为存储库本身中的每个筛选可能性编写新的查询。在实体本身中,每

  • 问题内容: 我的数据库结构包含列:。我想检索与最低行的 每一个 。我一直在尝试弄乱and ,仍然-没有解决方案。 问题答案: 解决方案1: 解决方案2: 这个问题非常有名,因此在Mysql的手册中有专门的页面。 请检查以下内容: 行包含某列的分组最大/最小值

  • 问题内容: 新手提出的另一个问题。我有一个php变量,用于查询数据库的值。它存储在变量$ publish中,当用户单击超链接时,它的值(在数据库中)将更改。 后台发生的事情是我正在查询数据库表中存储在$ publish变量中的某些数据。如果$ publish为空,则会在弹出窗口中添加publish.html的链接。弹出窗口将处理一个表单,并将数据添加到数据库,这意味着$ publish不再为空。我

  • 我需要找到产品的最低和最大价格,这样我就可以用它来设置我的价格过滤器的范围。我在catalog/model/layer/filter/price.php中使用了getMaxPriceInt()和getMinPriceInt()方法。但是返回的值基于'min_price'字段。 如何根据final_price找出集合中产品的最低和最高价格?也就是说,如果集合中有4个产品(我只登记需要的字段) get

  • 有没有更好的方法,以最低的价格与拉威尔雄辩的对象?每个产品都有多个票证类型,每个票证类型可以有多个价格。

  • 本文向大家介绍JDBC如何获取数据库连接,包括了JDBC如何获取数据库连接的使用技巧和注意事项,需要的朋友参考一下 JDBC(Java Database Connectivity),即Java数据库连接。通过JDBC编程,可以使Java应用程序和数据库进行交互。 JDBC驱动的方式有很多种,我们常用的驱动方式为:本地协议的纯Java驱动程序。 JDBC编程的第一步,就是要获取数据库连接。所谓的 “