作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个表:
表 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);
知道如何只获取不包含与前导通配符 tablebar.partialdata
匹配的结果 tablefoo.fulldata
吗?
我找到了这个链接:PostgreSQL 'NOT IN' and subquery这似乎是朝着正确的方向前进,但我没有让它与通配符一起工作。
当然,我可以编写一个脚本将其从 psql 中提取出来并进行比较,但将其全部作为查询的一部分进行处理会好得多。
最佳答案
SELECT fulldata
FROM tablefoo f
WHERE NOT EXISTS (
SELECT 1
FROM tablebar b
WHERE f.fulldata LIKE ('%' || b.partialdata)
);
关于sql - "NOT IN"带有前导通配符的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23615483/
我是一名优秀的程序员,十分优秀!