0
我有兩個用戶表,大致看起來像這樣。比較兩個表並插入不完全匹配的行
users_old
| id | email | hash | salt |
+----+----------------+------+------+
| 1 | [email protected] | 1234 | abc |
| 2 | [email protected] | 5678 | def |
| 3 | [email protected] | 9123 | ghi |
| 4 | [email protected] | 4567 | jki |
users
| id | email | hash | salt |
+----+----------------+------+------+
| 1 | [email protected] | 1234 | abc |
| 2 | [email protected] | 8662 | zsq | <--- different
| 3 | [email protected] | 9123 | ghi |
| 4 | [email protected] | 4567 | jki |
| 5 | [email protected] | 8912 | xrz | <--- new
,你可以看到,users_old包含ID,電子郵件,哈希和鹽。然而 - 用戶表在最後包含相同的條目+新條目,並且一些原始條目具有不同的散列+鹽。
什麼我希望做的是從用戶表中添加新條目更新users_old表,看看哪些項目有不同的hash +鹽組合,並添加那些在餐桌上也可作爲一個新的結尾?入境(即使電子郵件是相同的,所以最終的結果應該只是一個表
users_old
| id | email | hash | salt |
+----+----------------+------+------+
| 1 | [email protected] | 1234 | abc |
| 2 | [email protected] | 5678 | def |
| 3 | [email protected] | 9123 | ghi |
| 4 | [email protected] | 4567 | jki |
| 5 | [email protected] | 8912 | xrz |
| 6 | [email protected] | 8662 | zsq |
是有一個單一的查詢,可以使這一切成爲可能
謝謝,戈登。只是爲了澄清 - '從users_old選擇1'這一行並不意味着它只會檢查一行?有多行可能有不同的散列/鹽 – kokozz
@kokozz。 。 。 '1'是任意的。 'not exists'正在檢查是否有*行*被返回。它沒有考慮行中的值。 –
只是試了一下。完美的作品。謝謝你的幫助! – kokozz