我有一个ID的列表,我需要find在MySQL中的表中缺less哪些ID
我有一个优秀的ID号列表,我需要find列出的数字不存在作为主键在某个表中。
我试着做类似的事情
="Select * from table where `exchangeID` =" &A1&";"
在Excel中,为了生成每行的select语句。 我想通过运行select一个不存在的ID将返回一个错误。 然而,有几百个ID,复制和粘贴大量的select并没有做太多的事情,只能返回最后一对的结果。
任何帮助将非常感激!
将列表插入一个表(可以是临时表),然后用一个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
我不清楚Excel如何适应你的问题,但是这样的事情可能会起作用
select * from table where exchangeID not in (34,35,39,101,102)
其中34,35,39,101和102是有趣的id号码列表
对不起,我的第一个回答是错误的,重新阅读。
要查找数据库中不在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]);