我试图形成检查重复的用户ID WITHIN TABLE1和TABLE2 SQL语句(通过加入表1和表2一起发现重复的用户id不应该被记录)SQL检查重复的用户ID
下面是我的表信息,并且我已经实现当前检查:
表1:用户标识,用户名。
表2:用户名,状态。
表3:用户名,用户名,问题
目前我只有一台符合以上3个检查3 SELECT语句并将结果插入到表3:
1.
Insert in to Table3(userid,issue)
SELECT t1.userid,'check no.1'
FROM table1 t1
FULL OUTER JOIN table2 t2 ON t1.userid = t2.userid
where t1.userid not null and t2.userid is null
2.
Insert in to Table3(userid,issue)
SELECT t1.userid,'check no.2'
FROM table1 t1
inner JOIN table2 t2 ON t1.userid = t2.userid
where t2.status = 'DELETE'
3.
Insert in to Table3(userid,issue)
SELECT t2.userid,'check no.3'
FROM table2 t2
right outer JOIN table2 t2 ON t1.userid = t2.userid
where t2.status <> 'DELETE' and t1.userid is null
现在,我想要一个第四SQL查询,它检查重复用户ID在表1和表2自己内部,不是通过比较2个表在一起,而是每个表单独。
如果发现任何重复,插入记录到表3与
ISSUE = '在发现表1重复的用户ID',和
ISSUE =“重复的用户ID发现在表2'
谢谢你们。
这听起来像你的第四个查询应该非常像第二个,只是没有“where”子句 - 不适合你吗? –
在我看来,你需要在单个表中找到重复的用户ID,例如Table1中有两个UserID值为1的值?这些查询是可能的,但这种约束可以通过主键/唯一索引更好地解决。 – SWeko
嗨Jon Skeet,我发现只有在每个* Table1 *和* Table2 *本身内发现重复记录时插入记录的sql查询。因此,这些问题将是'Table1中发现的重复记录'和'Table2中发现的重复记录'。谢谢 – gymcode