无法通过上次更新的跟踪ID获取订单ID

时间:2014-10-28 07:54:51

标签: mysql sql join nested subquery

我有这个查询从order_history表中获取order_id,就像这样

$sql = "SELECT DISTINCT(`order_id`) FROM `".DB_PREFIX."order_history` WHERE trackcode = '".$trackcode."'";

情况是......

  

当打包订单时,会为其分配跟踪ID并在order_history表中添加。如果订单已由其他快递服务发送,则order_history表中将存在相同order_id的另一个条目。但是按照上面的查询,它将获取该tracking_no的order_id。即使它是订单历史表的变化。

另一种情况: - 如果跟踪没有。错误地分配给订单然后更改。因此,将通过上述查询获取两个ord​​er_id。

我怎样才能找到解决问题的正确方法?

order_history表就像这样

CREATE TABLE `order_history` (
  `order_history_id` int(11) NOT NULL AUTO_INCREMENT,
  `order_id` int(11) NOT NULL,
  `order_status_id` int(5) NOT NULL,
  `notify` tinyint(1) NOT NULL,
  `comment` text NOT NULL,
  `date_added` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `trackcode` varchar(15) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `carrier` varchar(15) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `warehouse_id` tinyint(1) DEFAULT '0',
  `logistic_partner_id` int(11) DEFAULT NULL,
  `dest_area_code` varchar(5) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `dest_service_center_code` varchar(5) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `added_by` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  PRIMARY KEY (`order_history_id`)
) ENGINE=MyISAM AUTO_INCREMENT=130306 DEFAULT CHARSET=utf8;

我怎么试过这个

SELECT order_id FROM order_history WHERE trackcode='11171920880' ORDER BY date_added DESC LIMIT 1

但它正在获取order_id,即使最近更新的同一order_id的跟踪代码是'1117192089'

我的问题扩展了其中一个......这不是我的解决方案

How to get ID of the last updated row in MySQL?

0 个答案:

没有答案