Oracle有A和B两张表B是A的子集不在B表的数据都显示B表里有数据时符合B表的一些条件才显示否则不显示。请提供示例
假设有两张表A和B,表A包含以下数据:
A表:
| id | name | |----|-------| | 1 | Alice | | 2 | Bob | | 3 | Carol | | 4 | Dave |
表B包含以下数据:
B表:
| id | name | |----|-------| | 1 | Alice | | 3 | Carol |
要求根据上述条件,查询出不在B表中的数据,或者在B表中符合某些条件的数据。可以使用以下SQL查询:
SELECT A.id, A.name
FROM A
LEFT JOIN B ON A.id = B.id
WHERE B.id IS NULL OR B.name = 'Alice'
上述查询使用了左连接(LEFT JOIN)将A表和B表连接起来。通过判断B表中对应的id是否为NULL,可以筛选出不在B表中的数据。同时,通过增加B.name = 'Alice'的条件,可以筛选出在B表中name为'Alice'的数据。
查询结果如下:
| id | name | |----|-------| | 2 | Bob | | 4 | Dave |
以上是一个示例,根据具体的条件和数据,可以进行相应的调整
原文地址: https://www.cveoy.top/t/topic/ixSA 著作权归作者所有。请勿转载和采集!