SQL:检查行是否包含另一个单元格的内容

时间:2016-10-26 09:28:13

标签: sql sqlite

我在查询时遇到困难。

我有两张桌子:

表1

ID/First Name
1    Ben
2    Barry
3    Birl

表2

ID/Full name 
1     Ben Rurth
2     Barry Bird
3     Burney Saf

我想在两个表之间运行检查,如果表1中的名字的内容不在表2中的全名中,则将返回结果,例如,在上面的例子中返回id 3,Birl。

我一直在尝试查询:

SELECT First_Name 
from Table_1 
WHERE NOT EXIST (SELECT Full_name from Table_2) 
到目前为止没有运气。

1 个答案:

答案 0 :(得分:1)

您可以使用LIKE子句结合连接。

SELECT t1.First_Name,t2.Full_Name
FROM Table1 t1
JOIN Table2 t2 ON t1.ID = t2.ID
WHERE t2.Full_Name NOT LIKE '%' || t1.First_Name || '%'

或者

SELECT t1.First_Name,t2.Full_Name
FROM Table1 t1
JOIN Table2 t2 ON t1.ID = t2.ID
WHERE t2.Full_Name NOT LIKE CONCAT('%', t1.First_Name, '%')

这是理解两个表共享ID列。