2 zwy0123 zwy0123 于 2015.06.22 23:17 提问

一个表没有主键,怎么通过表中的2个或多个字段进行数据筛选查询

图片说明
表如图,表中有3个字段,但不没有主键,我希望查询出pid不等于1并且name不等于n2的记录,期望的结果如下:
pid name value
1 n1 1
1 n3 1
2 n2 2
2 n4 3

3个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.22 23:26
 SELECT * FROM demo where pid<>1 and name<>'n2'
zwy0123
zwy0123   2015.06.22 23:33

哥 你这条语句只筛选出了我不希望要的数据,
我要的数据是这样,排除掉pid = 1 并且 name = n2之后的数据
pid name value
1 n1 1
1 n3 1
2 n2 2
2 n4 3

zwy0123
zwy0123 回复danielinbiti: 这样还是不行哦 这样写我当时自己尝试写了 但是没写出来
2 年多之前 回复
danielinbiti
danielinbiti 回复zwy0123: 是我理解不对。SELECT * FROM demo WHERE demo.pid+','+demo.name NOT IN( SELECT pid+','+name FROM demo WHERE pid='1' AND name='n2' )
2 年多之前 回复
zwy0123
zwy0123 回复danielinbiti: 我试过,你这样和我写的SELECT * FROM demo where pid != 1 and name != 'n2' 是一样的 但是我希望得到的结果不是这个,而是结果中不包含pid =1 and name = 'n2'的记录
2 年多之前 回复
danielinbiti
danielinbiti 你拿sql去试过吗?简单的不会,那就把别人写的先去试了再说。如果你能看懂上面SQL,那写出来完全没问题。
2 年多之前 回复
baidu_32728789
baidu_32728789   2015.11.11 13:53

select * FROM PAS.ABC WHERE pid NOT in (SELECT pid FROM PAS.ABC WHERE pid=1 )
union
select * FROM PAS.ABC WHERE name NOT in (SELECT name FROM PAS.ABC WHERE name='n2' )

Csdn user default icon
上传中...
上传图片
插入图片