SQL - 查找对并更新+插入

时间:2017-07-18 16:33:45

标签: mysql sql

我有一张这样的表

ID  |  map       |   status       |
===================================
1   |      1     |   searching    |
2   |      1     |   searching    |
3   |      2     |   searching    |
4   |      2     |   searching    |
5   |      1     |   searching    |
6   |      3     |   searching    |

我想通过这个表找到状态正在搜索的对(只有2个)并且它们具有相同的地图。然后更新它们的状态并将两行中的一些信息插入到另一个表中。

编辑:地图中的值未知。所以我需要先让它们“迭代”才能找到对。

1 个答案:

答案 0 :(得分:0)

这会将每个ID与下一个匹配的ID配对;如果超过2,你会得到一些重叠。

Select * from 
    TableName as t1 
    inner join 
    TableName as t2 
on 
    t1.status= 'searching' 
and t2.status = 'searching' 
and t1.map=t2.map  
and t1.id<t2.id