Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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_Join_Max - Fatal编程技术网

Mysql 如何在内部联接语句中获取最大日期

Mysql 如何在内部联接语句中获取最大日期,mysql,join,max,Mysql,Join,Max,我想获得订单状态,其中状态记录在单独的表“订单状态变更”中。使用下面的脚本,我可以得到所有的记录,但不能得到最新的状态。(需要最大订单\项目\ ID的状态(状态更改\日期) 如果我使用Max(订单状态更改。状态更改日期),那么我只会得到一条记录。 我在这里通过查看不同的示例修改了查询,但不起作用 SELECT order_items.ORDER_ITEM_ID, order_price.ORDER_ITEM_TOTAL_PRICE, order_status_change.ORDER_STAT

我想获得订单状态,其中状态记录在单独的表“订单状态变更”中。使用下面的脚本,我可以得到所有的记录,但不能得到最新的状态。(需要最大订单\项目\ ID的状态(状态更改\日期)

如果我使用Max(订单状态更改。状态更改日期),那么我只会得到一条记录。 我在这里通过查看不同的示例修改了查询,但不起作用

SELECT 
order_items.ORDER_ITEM_ID,
order_price.ORDER_ITEM_TOTAL_PRICE,
order_status_change.ORDER_STATUS

FROM order_items 

INNER JOIN order_price ON order_price.ORDERP_ITEM_ID = order_items.ORDER_ITEM_ID

INNER JOIN 
(SELECT MAX(order_status_change.ORDER_STATUS_CHANGE_DATETIME) AS STATUS_CHANGED_DATE FROM order_status_change WHERE order_status_change.ORDER_ITEM_ID = order_items.ORDER_ITEM_ID) 
AS order_status_change ON order_status_change.ORDER_ITEM_ID = order_items.ORDER_ITEM_ID

WHERE ((SELECT A.A_User_ID from A WHERE A.A_User_ID = @UserID) AND (DATE(order_items.ORDER_REQUIRED_DATE_TIME) = DATE(@OrderDateTime)))
如何获取每个订单项目的“最新”订单状态更改状态。订单项目ID?

您可以试试这个

SELECT 
    order_items.ORDER_ITEM_ID,
    order_price.ORDER_ITEM_TOTAL_PRICE,
    order_status_change.ORDER_STATUS
FROM order_items 
INNER JOIN order_price ON order_price.ORDERP_ITEM_ID = order_items.ORDER_ITEM_ID
INNER JOIN 
(
    SELECT MAX(order_status_change.ORDER_STATUS_CHANGE_DATETIME) AS STATUS_CHANGED_DATE,ORDER_ITEM_ID
    FROM order_status_change 
    GROUP BY ORDER_ITEM_ID
) AS order_status_change ON order_status_change.ORDER_ITEM_ID = order_items.ORDER_ITEM_ID
WHERE (
    (DATE(order_items.ORDER_REQUIRED_DATE_TIME) = DATE(@OrderDateTime))
)

您能提供一些示例数据和预期结果吗?与其他表的
chef
表关系是什么?由于存在多个子查询,您的查询非常复杂,可能效率低下。示例数据和预期输出可能会有所帮助,也许查询可以重构。请参阅:它只需使用userID获取订单项id。是否回答您的问题吗?我得到:错误代码:1054。“字段列表”中的未知列“order\u items.order\u ITEM\u ID”。我知道字段名称是正确的。通常在内部联接不正确时会发生这种情况。您的查询现在比我写的更有意义。要获取最大日期,我提取order\u ITEM\u ID的顺序对我来说很好,但它看不到。
SELECT 
    order_items.ORDER_ITEM_ID,
    order_price.ORDER_ITEM_TOTAL_PRICE,
    order_status_change.ORDER_STATUS
FROM order_items 
INNER JOIN order_price ON order_price.ORDERP_ITEM_ID = order_items.ORDER_ITEM_ID
INNER JOIN 
(
    SELECT MAX(order_status_change.ORDER_STATUS_CHANGE_DATETIME) AS STATUS_CHANGED_DATE,ORDER_ITEM_ID
    FROM order_status_change 
    GROUP BY ORDER_ITEM_ID
) AS order_status_change ON order_status_change.ORDER_ITEM_ID = order_items.ORDER_ITEM_ID
WHERE (
    (DATE(order_items.ORDER_REQUIRED_DATE_TIME) = DATE(@OrderDateTime))
)