数据库结构
id name1 name2 ......现在我要筛选出如下记录比如数据
1 张三 李四
2 张三 李四
3 李四 王五
4 李四 赵六
5 张三 王五
6 李四 赵六我需要的数据如下
2 张三 李四
3 李四 王五
5 张三 王五
6 李四 赵六
也就是说我要查找如果name1 和 name2 在数据库里存在都对应相等的记录,就选择ID最大的那个出来,如果没有对应相等的就直接读出来就好了。就是去掉name1 和name2 对应相等的重复记录......不知道表达明白没有?各位帮帮,我SQL菜鸟!!
id name1 name2 ......现在我要筛选出如下记录比如数据
1 张三 李四
2 张三 李四
3 李四 王五
4 李四 赵六
5 张三 王五
6 李四 赵六我需要的数据如下
2 张三 李四
3 李四 王五
5 张三 王五
6 李四 赵六
也就是说我要查找如果name1 和 name2 在数据库里存在都对应相等的记录,就选择ID最大的那个出来,如果没有对应相等的就直接读出来就好了。就是去掉name1 和name2 对应相等的重复记录......不知道表达明白没有?各位帮帮,我SQL菜鸟!!
where not exists
(select * from 表名 as t2 where t2.name1=t1.name1 and t2.name2=t1.name2 and t1.id<t2.id)
CREATE TABLE t1
(
id INT ,
name1 NVARCHAR(20),
name2 NVARCHAR(20)
)INSERT INTO t1 VALUES(1,'张三','李四')
INSERT INTO t1 VALUES(2,'张三','李四')
INSERT INTO t1 VALUES(3,'李四','王五')
INSERT INTO t1 VALUES(4,'李四','赵六')
INSERT INTO t1 VALUES(5,'张三','王五')
INSERT INTO t1 VALUES(6,'李四','赵六')
SELECT * FROM t1 WHERE id NOT IN (
SELECT a.id FROM t1 a,t1 b
WHERE a.name1=b.name1 AND a.name2=b.name2 AND a.id<b.id)id name1 name2
----------- -------------------- --------------------
2 张三 李四
3 李四 王五
5 张三 王五
6 李四 赵六(4 行受影响)
如:SELECT [name],[name2]
FROM text group by name,name2