Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql:返回联接表中的最大值_Mysql_Sql_Join_Max - Fatal编程技术网

MySql:返回联接表中的最大值

MySql:返回联接表中的最大值,mysql,sql,join,max,Mysql,Sql,Join,Max,我这里有三张桌子。有客户、订单和客户订购的物品。它们被命名为:CustomersTbl、OrdersTbl、OrderedItemTbl 我正在安排所有订单及其总价,并显示下订单的客户名称 select * from productstbl; select * from ordereditemtbl; select * from orderstbl; select ordereditemtbl.ItemID, customerstbl.CustomerID, cust

我这里有三张桌子。有客户、订单和客户订购的物品。它们被命名为:CustomersTbl、OrdersTbl、OrderedItemTbl

我正在安排所有订单及其总价,并显示下订单的客户名称

select * from productstbl;
select * from ordereditemtbl;
select * from orderstbl;

select 
    ordereditemtbl.ItemID,
    customerstbl.CustomerID,
    customerstbl.FirstName,
    orderstbl.OrderID,
    orderstbl.OrderDate,
    sum(ordereditemtbl.amount * productstbl.Price) as totalPrice
from
    ordereditemtbl
        inner join
    ProductsTbl ON ordereditemtbl.productID = productstbl.productID
        inner join
    orderstbl ON ordereditemtbl.orderID = ordereditemtbl.orderID
        inner join
    customerstbl ON customerstbl.customerID = orderstbl.customerID#'2'
group by ordereditemTbl.OrderID
order by totalPrice desc;

现在我想单独显示最高总价的订单。我怎样才能得到它的最大值?有没有可能使用MAX()函数的方法?

让我们看看。检查这是否有效:

SELECT * FROM 
(
select 
    ordereditemtbl.ItemID,
    customerstbl.CustomerID,
    customerstbl.FirstName,
    orderstbl.OrderID,
    orderstbl.OrderDate,
    sum(ordereditemtbl.amount * productstbl.Price) as totalPrice,
    @rownum AS row_number
from
    ordereditemtbl
        inner join
    ProductsTbl ON ordereditemtbl.productID = productstbl.productID
        inner join
    orderstbl ON ordereditemtbl.orderID = ordereditemtbl.orderID
        inner join
    customerstbl ON customerstbl.customerID = orderstbl.customerID#'2'
        inner join
    (SELECT @rownum := 0) dummy
group by ordereditemTbl.OrderID
ORDER BY totalPrice desc;
)
WHERE row_number=0
这将分配一个行号并选择最上面的一行

干杯,
Ram根据abl的建议,我在代码末尾添加了以下内容:

order by totalPrice desc LIMIT 1;
显示创建的表的第一行,如降序值所示。
谢谢

按最大订单(总价)
否。遗憾的是,我得到了以下信息:“错误1247:不支持参考总价”。我试图通过将totalPrice的值:sum(ordereditemtbl.amount*productstbl.Price)来修复它。使我遇到错误1111:“组函数的使用无效”。
。。。按总价说明限额订购1
请参阅。另外请注意,ordereditemtbl.orderID=ordereditemtbl.orderID上的orderstbl行中有一个错误,我猜您的意思是ordereditemtbl.orderID=erderstbl.orderID谢谢,这很有效。:)我们缺少每个表的别名,但在我添加之后,返回了0行。我不明白,我复制了你的查询,我应该添加别名吗?我真的是SQL的初学者,我只是通过错误学习这些东西。