sql - 是否可以与 SQL 中的另外两个字段共享相同的过滤器参数(WHERE CLAUSE)?

标签 sql postgresql select sql-in

考虑下面

SELECT * FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.id
WHERE 
t1.A NOT IN ('111111','222222','33333')
AND 
t2.B NOT IN ('111111','222222','33333')

是否有另一种方法可以对两个不同的字段使用相同的过滤器参数?

类似的事情

SELECT * FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.id
WHERE (t1.A and t2.B) NOT IN ('111111','222222','33333')

看起来很简单,但我在文档中找不到任何内容。

最佳答案

您可以使用数组交集运算符 (&&) 来模拟该条件 - 创建一个列数组和一个要测试的值数组,并有一个 where 检查它们之间没有交集的子句:

SELECT    * 
FROM      table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.id
WHERE     NOT ARRAY[t1.A, t2.B] && ARRAY['111111', '222222', '33333']

关于sql - 是否可以与 SQL 中的另外两个字段共享相同的过滤器参数(WHERE CLAUSE)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68146474/

相关文章:

python - 从一个条件到另一个条件选择数据框行

Django 外键 : settings. AUTH_USER_MODEL 一直为 form.save 提供空值

sql - Postgres 字符 (50) 与 'some string' 比较

django - 为 Django Postgres 连接强制使用 SSL

java - SELECT INTO 语句在 java 程序中不起作用

php - Codeigniter Select_Sum 返回 "array"不是数值?

jquery - 添加类并在选择时更改单选按钮上的文本

sql - 在 oracle 的列中添加分数约束

sql - 'natural full outer join' 和 'full outer join' 之间的区别

java - JDBC INSERT INTO - 错误的主键