我有两张桌子:
表tablefoo
包含一列fulldata
表格tablebar
包含一列partialdata
。
我想找到tablefoo.fulldata
中没有部分匹配的tablebar.partialdata
列表。
以下是tablefoo.fulldata
中tablebar
部分匹配的列表,但我希望对此有所了解。
select fulldata from tablefoo
where fulldata like any (select '%' || partialdata from tablebar);
列出partialdata
中的每条记录:
select fulldata from tablefoow
where partialdata not in (select '%' || partialdata from tablebar);
知道如何只获取不包含与前导通配符tablefoo.fulldata
匹配的结果tablebar.partialdata
吗?
我发现了这个链接:PostgreSQL 'NOT IN' and subquery这似乎正朝着正确的道路前进,但我没有让它与通配符一起工作。
当然,我可以编写一个脚本来将其从psql中删除并进行比较,但在查询中将这一切处理起来会更好。
答案 0 :(得分:0)
SELECT fulldata
FROM tablefoo f
WHERE NOT EXISTS (
SELECT 1
FROM tablebar b
WHERE f.fulldata LIKE ('%' || b.partialdata)
);