我有一个数据库中的用户名和密码列表,我想将其与DB#2中的用户名和密码列表进行比较。
如果DB#2具有不在DB#1中的用户名和密码,则应将其删除。
因此,当迭代列表中并且有一个匹配时(含义DB#2具有不应在db#1中的行)。如何在与条目相对应的DB#2中检索行ID?
创建两个列表时,我排除了行ID,因为这会导致所有条目与DB#1不匹配。因此,我仅通过用户名和密码列过滤。
我们可以在此处尝试使用EXISTS
子句以及DELETE
:
DELETE
FROM table2 t2
WHERE NOT EXISTS (SELECT 1 FROM table1 t1
WHERE t1.username = t2.username AND t1.password = t2.password);
如果您想先检查第二个表中的哪些记录在第一个表中没有匹配的凭据,那么我们可以使用类似逻辑的选择:
SELECT username, password
FROM table2 t2
WHERE NOT EXISTS (SELECT 1 FROM table1 t1
WHERE t1.username = t2.username AND t1.password = t2.password);