【问题标题】:How can I get the right product name and price?如何获得正确的产品名称和价格?
【发布时间】:2023-03-09 02:29:01
【问题描述】:

数据库表::

sales-salesID ||价格 ||日期 SS011 || 321.00 || 2018-08-18

SS012 || 5422.5 || 2018-09-06

SS013 || 4563.00 || 2018-10-12

SS014 || 3212.00 || 2018-11-14

SS015 || 231.00 || 2018-12-16

salesinfo - salesID ||数量 ||产品代码

SS011 || 52 || 1

SS012 || 258 || 2

SS013 || 12 || 3

SS014 || 12 || 3

SS015 || 25 || 1

产品 - 产品代码 ||产品名称 ||产品价格

1 ||日本白画 || 38.00

2 ||屋顶 ||48.00

3 ||锤子 || 28:00

预期结果::

产品名称 ||日期 ||数量 ||单价 (RM) ||总价 (RM)

日本白画 2018-12-16 25 38.00 231.00

屋顶 2018-11-14 12 48.00 3212.00

锤子 2018-10-12 12 28.00 4563.00

锤子 2018-09-26 258 28.00 5422.50

日本白画 2018-08-18 52 38.00 321.00

这是我的代码::

SELECT sales.salesID, sales.price, sales.date, salesinfo.quantity, 
product.productName, product.productPrice
FROM sales
JOIN salesinfo ON sales.salesID = salesinfo.salesID                             
JOIN product ON salesinfo.productCode = salesinfo.productCode
GROUP BY salesinfo.salesID                                      
ORDER BY sales.date DESC
LIMIT 5

实际结果出来了::

产品名称 ||日期 ||数量 ||单价 (RM) ||总价 (RM)

日本白画 2018-12-16 25 38.00 231.00

日本白画 2018-11-14 12 38.00 3212.00

日本白画 2018-10-12 12 38.00 4563.00

日本白画 2018-09-26 258 38.00 5422.50

日本白画 2018-08-18 52 38.00 321.00

产品名称和单价已重复。我应该将 salesinfo.salesID 分组并加入产品表吗?

【问题讨论】:

  • 我真的帮不了你,因为你甚至从未展示过你的预期输出是什么样子。请为所有表添加示例数据,然后添加您期望的输出。请注意,您的查询可能没有任何问题;它正在做它应该做的,而不是你想要的。
  • 嗨@TimBiegeleisen 感谢您的回复。我已经编辑了我的问题并添加了我的数据库表。 productName 和 productPrice 的结果与 salesinfo 表中 productCode 的数据不一致。

标签: php mysqli


【解决方案1】:
JOIN product ON salesinfo.productCode = salesinfo.productCode

以上代码来自您的查询。当您比较同一张表中的productCode 时,这完全没用。改成这段代码。

JOIN product ON salesinfo.productCode = product.productCode

另外,您无需GROUP BY 即可获得所需的结果。

【讨论】:

  • 它有效,考虑接受我的回答。它将帮助将来遇到类似问题的其他人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多