我有一个检索名称列表的查询。我需要通过添加子查询来修改查询,如果它出现在t2.exclude中,则子查询将排除t1.name
。我需要一些构建子查询的帮助,我理解它将进入下面的WHERE
子句:
SELECT t1.name
FROM t1
WHERE *** t1.name is not in t2.exclude ***
我需要的子查询的正确语法是什么?感谢。
答案 0 :(得分:0)
试试这个:
SELECT t1.name
FROM t1
WHERE t1.name NOT IN (SELECT t2.name from t2)
您将排除t2.name
中存在的所有t1.name编辑1
做一些测试我最终会得到一个非常奇怪的查询,但是它可以工作,你可以去:
SELECT * from t1
WHERE t1.name NOT IN (
SELECT t1.name FROM t1, t2
WHERE t1.name LIKE CONCAT('%', t2.name ,'%')
)
如果您想知道它是如何工作的,它会进行inverse whitelist
检查
tldr;你在两张桌子上做了一个黑名单。
上的测试