回 帖 发 新 帖 刷新版面

主题:SQL查询求助。。。。

在SQL里有两个表,两个表都有相同的字段,(如:姓名,年龄,性别),通过怎样的查询得到表1中的记录,而这些记录在表2中不存在(即在表1中查找表2中不存在的记录)

回复列表 (共4个回复)

沙发

select * from 表1 where id not in (select id from 表2)

板凳

[quote]select * from 表1 where id not in (select id from 表2)[/quote]
学习~!

3 楼

姓名,年龄,性别

1、姓名是主键
select * from tb1 where 姓名 not in (select 姓名 from tb2)

2、姓名,年龄,性别
select * from tb1 where cast(姓名 as varchar) + cast(年龄 as varchar) + cast(性别 as varchar) not in (select cast(姓名 as varchar) + cast(年龄 as varchar) + cast(性别 as varchar) from tb2)

3、如果是查全表不重复。
使用checksum()

4 楼

I have two tables( a & b). How do i get records from table a which don't match with the records in table b
Depending on where it needs to be used...

SELECT a.*
  FROM TableA a
  LEFT OUTER JOIN
       TableB b
    ON a.somecol = b.somecol
 WHERE b.somecol IS NULL

...OR...

SELECT *
  FROM TableA
 WHERE somecol NOT IN (SELECT somecol FROM TableB)

...OR...

SELECT a.*
  FROM TableA a
 WHERE NOT EXISTS (SELECT 1 FROM TableB b WHERE b.somecol = a.somecol)

我来回复

您尚未登录,请登录后再回复。点此登录或注册