我有一个ID号的excel列表,我需要找到列出的哪些号码不存在作为某个表中的主键。
我尝试过像
这样的事情="Select * from table where `exchangeID` =" &A1&";"
在Excel中,以便为每一行生成select语句。我认为通过对不存在的ID运行select会返回错误。然而,有几百个ID,除了返回最后一对的结果之外,复制和粘贴巨大的选择列表并没有做太多。
非常感谢任何帮助!
答案 0 :(得分:2)
将列表插入表(可以是临时表),然后使用LEFT JOIN连接到表。
这样的事情: -
CREATE TABLE temp
(
ID_NUMBER INT
);
INSERT INTO temp VALUES (1), (2), (3)
然后是JOIN
SELECT a.ID_NUMBER
FROM temp a
LEFT OUTER JOIN sometable b
ON a.ID_NUMBER = b.exchangeID
WHERE b.exchangeID IS NULL
答案 1 :(得分:1)
对不起,我的第一个回答错误地解决了问题,重新阅读。
要查找数据库中不在Excel中的所有ID:
让您的Excel生成一列ID,如下所示:
="'" & A1 & "',"
将结果列复制并粘贴到文本文件中(记事本等)。
将此文本复制到SQL语句中:
select * from table where not `echangeID` in ([paste your list here]);
不要忘记从列表中删除最后一个(逗号)。
要查找Excel中不在电子表格中的所有值:
您需要将Excel中的值插入另一个表中。您可以使用.csv导入轻松完成此操作。
select id from [Excel table] where not id in (select id from [original table]);
答案 2 :(得分:1)
我不清楚Excel如何适应您的问题,但这样的事情可能会起作用
select * from table where exchangeID not in (34,35,39,101,102)
其中34,35,39,101和102是有趣的id号列表