我有一个包含tbl_user
和login
列的表device
。
login
是唯一ID,device
是一个更改的整数。
我在这里要完成的是使用新表device
归档每个login
的所有tbl_user_arhcive
。
E.g。对于login = 201530
,device
值在当前时间为123456
。如果指定的tbl_user_archive
存在特定设备值,我需要检查login
。如果它存在,那么我将不会插入它,否则我将其插入tbl_user_archive
。这样我将保存一个存档,其中包含登录所有的设备值(唯一)。
我不知道如何开始。我在SO上发现了一些类似的问题,但他们并没有帮助我理解如何解决这个问题。
答案 0 :(得分:1)
您可以使用NOT EXISTS
:
INSERT INTO tbl_user_archive(login, device)
SELECT DISTINCT
login,
device
FROM tbl_user tu
WHERE NOT EXISTS(
SELECT 1
FROM tbl_user_archive
WHERE login = tu.login
AND device = tu.device
)
如果您对login, device
上的tbl_user
有唯一约束,那么您可以删除DISTINCT
,因为它只会添加额外的DISTINCT SORT
操作,并会增加执行时间