TRY. SELECT ID from A WHERE EXISTS (SELECT 1 from B WHERE A.ID=ID AND ( NAME <> '456' OR NAME <>'789'))
首先得是 NOT EXISTS吧 获取B表不一定只是 456,789 可能还有更多的 如果不用in 还有其他方法吗?
首先得是 NOT EXISTS吧 获取B表不一定只是 456,789 可能还有更多的 如果不用in 还有其他方法吗? 用NOT EXISTS 则 SELECT ID from A WHERE NOT EXISTS (SELECT 1 from B WHERE A.ID=ID AND ( NAME = '456' OR NAME ='789'))
首先得是 NOT EXISTS吧 获取B表不一定只是 456,789 可能还有更多的 如果不用in 还有其他方法吗? 用NOT EXISTS 则 SELECT ID from A WHERE NOT EXISTS (SELECT 1 from B WHERE A.ID=ID AND ( NAME = '456' OR NAME ='789'))
获取B表不一定只包含 '456','789' 可能还有更多 这个条件的未知的
AND ( NAME = '456' OR NAME ='789') 和AND NAME in('456','789')没区别吧?
select ID from A where ID not in(select ID from B where B.Name in ('456','789')) 表B,Name字段有沒有建立索引,如有沒有,建立索引就能大幅提速了!
AND ( NAME = '456' OR NAME ='789') 和AND NAME in('456','789')没区别吧? 用IN入在NAME 建立有索引的话则不会走索引,用 AND/OR 则有索引,会走索引,提升查询性能。
select ID from A except select ID from B where B.Name in ('456','789')
SELECT ID from A WHERE EXISTS (SELECT 1 from B WHERE A.ID=ID AND ( NAME <> '456' OR NAME <>'789'))
首先得是 NOT EXISTS吧 获取B表不一定只是 456,789 可能还有更多的 如果不用in 还有其他方法吗?
首先得是 NOT EXISTS吧 获取B表不一定只是 456,789 可能还有更多的 如果不用in 还有其他方法吗?
用NOT EXISTS 则
SELECT ID from A WHERE NOT EXISTS (SELECT 1 from B WHERE A.ID=ID AND ( NAME = '456' OR NAME ='789'))
首先得是 NOT EXISTS吧 获取B表不一定只是 456,789 可能还有更多的 如果不用in 还有其他方法吗?
用NOT EXISTS 则
SELECT ID from A WHERE NOT EXISTS (SELECT 1 from B WHERE A.ID=ID AND ( NAME = '456' OR NAME ='789'))
获取B表不一定只包含 '456','789' 可能还有更多 这个条件的未知的
AND ( NAME = '456' OR NAME ='789') 和AND NAME in('456','789')没区别吧?
表B,Name字段有沒有建立索引,如有沒有,建立索引就能大幅提速了!
AND ( NAME = '456' OR NAME ='789') 和AND NAME in('456','789')没区别吧?
用IN入在NAME 建立有索引的话则不会走索引,用 AND/OR 则有索引,会走索引,提升查询性能。
select ID from A
except
select ID from B where B.Name in ('456','789')