left join on后面跟多个and ,怎么剔除关联上的数据呢
时间: 2024-09-23 22:04:19 浏览: 41
hive sql + left join 数据缺失
在SQL查询中,当使用LEFT JOIN操作符结合多个ON条件时,并不会直接提供一种内置的方式来"剔除"关联上的数据。然而,如果你想要筛选掉某些特定的匹配结果,你可以添加额外的WHERE子句在LEFT JOIN之后。
例如:
```sql
SELECT t1.*, t2.*
FROM table1 t1
LEFT JOIN table2 t2 ON t1.key1 = t2.key1 AND t1.key2 = t2.key2 AND (t2.some_column IS NULL OR t2.another_column <> 'some_value')
```
在这个例子中,`AND (t2.some_column IS NULL OR t2.another_column <> 'some_value')` 这部分就是用来过滤掉不符合条件的数据,比如`some_column`值为空或`another_column`不是'some_value'的记录。
如果你只想保留左表(table1)中的所有记录,即使在右表(table2)没有匹配,那么就不用AND条件,只做LEFT JOIN即可。
阅读全文