2017-07-18 49 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