Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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
Php 如何在MYSQL/SQL中查询该表结构中的订单结果?_Php_Mysql_Sql - Fatal编程技术网

Php 如何在MYSQL/SQL中查询该表结构中的订单结果?

Php 如何在MYSQL/SQL中查询该表结构中的订单结果?,php,mysql,sql,Php,Mysql,Sql,我目前从事电子购物车项目,需要记录交易 结构如下: order ------ id order_id * member_id member ------ id member_id status -------- id description * order_id create_date 因此,状态是存储订单更改状态,例如,当收到订单时,我添加订单,并添加描述为100的状态。请尝试以下操作: SELECT src.max_date, src.order_id,

我目前从事电子购物车项目,需要记录交易

结构如下:

order
------
id
order_id
* member_id

member
------
id
member_id

status
--------
id
description 
* order_id
create_date
因此,状态是存储订单更改状态,例如,当收到订单时,我添加订单,并添加描述为100的状态。请尝试以下操作:

SELECT src.max_date,
       src.order_id,
       src.member_id,
       CASE
           WHEN s1.description = 100 THEN 'order_receive'
           WHEN s1.description = 200 THEN 'order_deliver'
       END AS status_description FROM
  (SELECT MAX(s.create_date) max_date, s.order_id , o.member_id
   FROM status s
   JOIN `order` o ON o.order_id = s.order_id
   GROUP BY s.order_id, o.member_id) src
JOIN status s1 ON s1.create_date = src.max_date;

请用您在编写查询时所做的尝试更新您的问题。谢谢!有一个upvote。谢谢,应该是加入订单o?用演示重试:)谢谢,但说明似乎与创建日期不一致?这意味着如果我正确理解您的业务,查询只返回“分组依据”的说明,而不是最大(创建日期)的说明,“描述越大,创建日期就越大”。因此最大值将是一个快捷解决方案。
SELECT src.max_date,
       src.order_id,
       src.member_id,
       CASE
           WHEN s1.description = 100 THEN 'order_receive'
           WHEN s1.description = 200 THEN 'order_deliver'
       END AS status_description FROM
  (SELECT MAX(s.create_date) max_date, s.order_id , o.member_id
   FROM status s
   JOIN `order` o ON o.order_id = s.order_id
   GROUP BY s.order_id, o.member_id) src
JOIN status s1 ON s1.create_date = src.max_date;