如何从两个不同的表格列

时间:2017-07-17 13:12:33

标签: mysql sql

[![在此处输入图片说明] [1]] [1]我需要返回订单的结果,其中条件是我们在表中有orderDate,即Date字段,一个orderCloseTime用于同一订单,该订单位于不同的表中,只有时间值。

我必须将orderDatenow()进行比较,但时间应该从另一个表的orderCLoseTime列进行比较。

即如果orderCloseTime具有今天的数据2017-07-17 09:40:12但是如果它已经超过时间orderCloseTIme,那么该数据不应该在查询中返回。

在下面的查询中,如果我将日期作为未来日期,那么它也不会返回数据,它只应将今天的日期与时间进行比较。

编辑:

select * 
from opsorder mbo 
where date(mbo.orderDate)>=date(now()) 
and storeId in
    (select storeid from store mbs 
        INNER JOIN  distributioncenter mbd on
        mbd.distributionCenterId = mbs.distributionCenterId 
        where mbd.orderCloseTime > curtime() 
        and date(mbo.orderDate)>=date(now())
    );

1 个答案:

答案 0 :(得分:0)

从您对数据结构的描述看来,这应该可行。我无法看到使用子查询而不是连接的原因。

select 
 mbo.*,
 DATE(mbo.orderDate) + ' ' + mbd.orderCloseTime AS OrderCutOffTime
from mb_opsorder mbo 
  inner join mb_store mbs
    on mbo.storeId = mbs.storeid
  inner join  mb_distributioncenter mbd 
    on mbd.distributionCenterId = mbs.distributionCenterId 
where 
  addtime(date(mbo.orderDate), mbd.orderCloseTime) >= now()