SQL - 获取"记录"在我拥有的字符串列表中没有匹配项

时间:2017-04-25 19:17:56

标签: mysql sql

这是我遇到的一种非常常见的情况,我想知道是否有一种简单的方法可以用SQL解决 -

我有一张包含2,000条记录的表格:

UNIVERSITY
id, name

所以,例如:

1, UConn
2, Eastern
3, Western
4, Southern

然后有人给我一张Excel表格,里面有一些大学名字:

Eastern
Western
UMass
MIT

我需要找出SQL表格中存在 的大学名称。即从Excel表格中筛选出表格中的大学。例如:

UMass
MIT

如果我这样做了:

SELECT * FROM university WHERE name IN ( 'Eastern', 'Western', 'UMass', 'MIT' )

我会回来的:

2, Eastern
3, Western

但我真正想知道的是电子表格中的东西,而不是表格中的内容。例如:

UMass
MIT

我有什么简单的方法可以使用SQL查询吗?

2 个答案:

答案 0 :(得分:1)

最简单的方法是在db表中上传excel表并执行LEFT JOIN

SQL DEMO

SELECT newUniv.name
FROM newUniv
LEFT JOIN University
  ON newUniv.name = University.name
WHERE University.name IS NULL;

答案 1 :(得分:0)

出于懒惰,我可能只是将sql中的名称粘贴到新工作表中,并使用excel公式找出数据库中没有的。

当值不在引用列表中时,返回TRUE

=ISNA(VLOOKUP(A2,Sheet2!A:A,1,FALSE))

其中A2是您正在查找的名称,Sheet2!A:A是您从数据库中粘贴名称的位置