[英]Copy row with 2 different values into same table
我在獲取要復制並插入到同一表中但具有不同值並且基於兩個條件的記錄時遇到了麻煩。
我到目前為止:
INSERT INTO Userdetails
(ID, Username, Firstname, Surname, Location, TimeAs)
SELECT ID, Username, Firstname, Surname, Location, CURRENT_TIMESTAMP
FROM
Userdetails where Username = 'Harvard'; // and the latest date of the record
我想做的是,當用新的時間戳更新位置的新記錄時,將具有舊記錄的所有詳細信息(名字等)的位置插入表中,但保留舊記錄。
如果僅使用WHERE Username =,則每次執行查詢時,記錄數將乘以2x。
樣品日期:
Username | Firstname | Surname | Location | Last Updated
Harvard David Beckham London 2017-05-08 12:11:00
Harvard David Beckham Turkey 2017-05-08 12:14:00
Stanton John Smith Paris 2017-05-08 11:24:00
// This would be the result of the query, With a different timeStamp and Location but keeping the old record
Harvard David Beckham Hong Kong 2017-05-08 12:20:00
我要執行的操作是復制最新記錄,其中username ='Harvard',但還要使用最新時間,而不僅僅是用戶名,因為這會創建2條記錄,而不僅僅是我想要的1條記錄。
任何幫助表示贊賞。
除非我在這里缺少任何東西,否則您可以簡單地使用top 1
和order by
:
INSERT INTO Userdetails
(ID, Username, Firstname, Surname, Location, TimeAs)
SELECT TOP 1 ID, Username, Firstname, Surname, Location, CURRENT_TIMESTAMP
FROM Userdetails
WHERE Username = 'Harvard'
ORDER BY TimeAs DESC;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.