2017-07-18 51 views
-3

我有一个表像这样SQL - 找到对和更新+插入

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

我想去槽表,找到对(只2)其中​​,状态检索和他们有相同的地图。然后更新它们的状态并将两行中的一些信息插入到另一个表中。

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

+0

'那里状态= BY地图限2“搜索”集团从表名SELECT *;“不清楚,你问什么???”' –

+0

再次与再次更改的问题! “请阅读如何提出问题”https://stackoverflow.com/help/how-to-ask –

+0

如果只有1条记录,限制2也会执行。 –

回答

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 
+0

这应该如何与只有一个表一起工作? –

+0

更新为放置tablename而不是table以使其更清晰(并且正确)。这是一个自我加入,你加入表本身。 – JeffUK