2

2つのテーブルを照合するために使用するこのクエリがあります。現在、テーブルは時間のみで照合されます。つまり、小売業者のテーブルの時間フィールドは、imovoテーブルの時間フィールドよりも5秒早くなります。私がすでに達成する必要があるのは:

小売業者の行を挿入すると、小売業者の時間、小売業者のepos_idなどの情報が追加されます。imovoの行を挿入すると、imovo時間、imovo rpos_idなどの情報が追加されます。また、rbpos_idとepos_idが一致するテーブルrbpos_eposもあります。

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

3 つのテーブルすべてを結合してみる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`;

必要に応じて選択に列を追加します。

于 2012-11-17T12:45:57.853 に答える