我已经做了类似的事情来逐一获得结果,但现在我有一个300家公司的清单,我需要从中获取数据。
c.rb -= 0.0001
结果是公司匹配的所有内容的清单。
但是我想从保险柜中选择一切,其中defendant_client(保险库中的一列)与另一个表中的公司中的任何条目匹配或相似。
SELECT * FROM vault
WHERE defendant_client LIKE '%Purdue Pharma%';
它在运行的意义上有效,但没有返回结果,即使我知道有几个匹配的公司,我应该能够得到一些结果。
我做错了什么,如何得到我需要的结果?
答案 0 :(得分:2)
在您最近的编辑之后,您可能想尝试...
SELECT
vault.*
FROM
vault
INNER JOIN
OpioidCompanies
ON vault.defendant_client LIKE '%' || OpioidCompanies.company || '%'
如果简单%<blah>%
不是您想要的,请考虑研究SOUNDEX()
及相关功能。
答案 1 :(得分:1)
我会使用相关子查询来执行此操作:
SELECT v.*
FROM vault v
WHERE EXISTS (SELECT 1
FROM OpioidCompanies oc
WHERE v.defendant_client LIKE '%' || oc.company || '%'
);
与使用JOIN
相比,这有两个优势: