2

我有这个查询,我用它来匹配两个表,现在,我只按时间匹配表,所以,这意味着,零售商表中的时间字段比 imovo 表中的时间字段早 5 秒。我已经需要实现的是:

当我插入零售商行时,我会添加诸如零售商时间、零售商 epos_id 之类的信息 当我插入 imovo 行时,我会添加诸如 imovo 时间、imovo rpos_id 之类的信息 我还有一个表 rbpos_epos,它具有匹配的 rbpos_id 和 epos_id

table retailer:
time     |    epos_id
12:23:34   ea12

table imovo
time     |    rbpos_id
12:23:29      ra12

table rbpos_epos
id  | epos_id  |   rbpos_id
1       ea12         ra12

当我将零售商与 imovo 匹配时,我还想检查它们各自的 rbpos_id 和 epos_id 是否在 rbpos_epos 表中匹配。我的意思是,如果它们是一对,它们是否具有相同的 id。

这是我目前使用的查询

SELECT retailer.date, retailer.time, retailer.location, retailer.user_id,imovo.mobile_number ".
 "FROM retailer LEFT JOIN imovo ".
    " ON addtime(retailer.time, '0:0:50')>imovo.time
AND retailer.time <imovo.time AND retailer.date=imovo.date
" 
4

1 回答 1

0

尝试加入所有三个表SQL Fiddle

select r.`time`, r.`epos_id`,
       i.`time`, i.`rbpos_id`
from retailer r
join rbpos_epos re on r.epos_id = re.epos_id
join imovo i on i.rbpos_id = re.rbpos_id
             and addtime(r.`time`, '0:0:50') > i.`time`
             and r.`time` < i.`time`
             and r.`date` = i.`date`;

根据需要在 select 中添加列。

于 2012-11-17T12:45:57.853 回答