使用连接和满足条件进行查询

时间:2012-11-17 12:34:35

标签: php mysql

我有这个查询用于匹配两个表,现在,我只是按时间匹配表,所以,这意味着,零售商表中的时间字段比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
" 

1 个答案:

答案 0 :(得分: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中添加列。