Mysql Can';我搞不懂SQL查询
在我的数据库中,我在一个名为foodgroups的表中有特定类别的食物。因此,我在不同的表中列出了与这些类别相关的fooditems。此外,我还创建了一个名为orders的订单表,以及一个“orderfood”表,该表定义了订单,根据订单所属产品的数量来定义订单 我的目的是展示每种食品中最畅销的食品。所以我想在一列中列出类别,在它旁边是和fooditem的勾结,这是这个类别中最畅销的fooditemsMysql Can';我搞不懂SQL查询,mysql,sql,Mysql,Sql,在我的数据库中,我在一个名为foodgroups的表中有特定类别的食物。因此,我在不同的表中列出了与这些类别相关的fooditems。此外,我还创建了一个名为orders的订单表,以及一个“orderfood”表,该表定义了订单,根据订单所属产品的数量来定义订单 我的目的是展示每种食品中最畅销的食品。所以我想在一列中列出类别,在它旁边是和fooditem的勾结,这是这个类别中最畅销的fooditems Select foodgroups.name, SUM(orderfood.fooditem
Select foodgroups.name, SUM(orderfood.fooditem_ID*orderfood.amount)
FROM orders, orderfood, products, productgroups
Where productgroups.productgroup_ID=products.productgroup_ID
AND orders.order_ID=orderfood.order_ID
AND products.product_ID=orderfood.product_ID
Group by productgroups.productgroup_ID`
到目前为止,它没有显示任何错误,但我不知道如何在它的类别旁边找到一个只有最常买的食物的专栏,因为它是最常买的食物。也许你能帮我,谢谢:)
顺便说一句,我正在使用MySQL工作台
我认为您正在寻找MAX函数。将其添加到select语句中
Select foodgroups.name, SUM(orderfood.fooditem_ID*orderfood.amount), max(orderfood.amount)
FROM orders, orderfood, products, productgroups
Where productgroups.productgroup_ID=products.productgroup_ID
AND orders.order_ID=orderfood.order_ID
AND products.product_ID=orderfood.product_ID
Group by productgroups.productgroup_ID`
这将返回您点的最多的食物请将表格模式和样本数据发布到sqlfiddle.com您可以发布表格模式吗?这里是它的一个折衷版本,但它应该先停止使用隐式连接,它们是sql反模式,并且是一种非常糟糕的编程实践。而且永远不要像那样使用group by,您经常会得到错误的结果。我不认为您完全理解我试图得到的结果:我想要第一列,右边的列显示了不同的类别,它旁边的列应该为每个类别提供该类别中销售最多的一种产品;我不鼓励使用隐式joinsAh,这就是我想要的。我有一段类似的代码做同样的事情。这是一个摘要查询,但不是mySql。我自己也是一个预言家@HLGEM,对不起,如果我因为鼓励隐性加入而被否决。。。但是,与其抨击隐式连接,不如提供一个最佳实践如何展示它的示例。这将鼓励最佳做法。