SQL中查询的问题谁来解决下?

来源:百度知道 编辑:UC知道 时间:2024/07/02 07:54:42
2个表A表中是先前的表,B表在A表的基础上加了些元组,现在要查出在B表而没在A表的记录。(A和B的所有属性都一样)
我的代码在下面:
SELECT *
FROM B
WEHER SELECT ADD NOT IN //ADD是一个文本的属性,表示地址
(SELECT ADD
FROM A)

这样的统计如果是多个列的话要使用left join或right join,当然仅用一列也适用,而且这种查询有时候效率要比in或not in 效率高。

比如你的A表和B表都有列C1、C2
要查B表中有而A表中没有的记录的语句是

SELECT B.*
FROM A RIGHT JOIN B
ON A.C1=B.C1 AND A.C2=B.C2
WHERE A.C1 IS NULL AND A.C2 IS NULL

采用的是右连接,可以查出B中有而A中没有的记录。

SELECT *
FROM B
WEHER B.ADD NOT IN
(SELECT A.ADD
FROM A)

沉默用户所言甚善 严重推荐

SELECT *
FROM B
WEHER ADD IN (
SELECT ADD NOT IN //ADD是一个文本的属性,表示地址
(SELECT ADD
FROM A)
)