SQL去除重复记录 急~~
在bookinfo里查询bookid为1234的记录,但是bookinfo里不只有一条booid为1234的记录,我想查询时只显示一条而且是该死记录的全部信息.即:boo...
在bookinfo里查询bookid为1234的记录,但是bookinfo里不只有一条booid为1234的记录,我想查询时只显示一条而且是该死记录的全部信息.即:
bookid bookname bookauthor ……
1234 aa bb ……
我试过用distinct,select distinct * from ……
但还是两条相同bookid的记录都显示出来,请高手指点指点,谢谢~~ 展开
bookid bookname bookauthor ……
1234 aa bb ……
我试过用distinct,select distinct * from ……
但还是两条相同bookid的记录都显示出来,请高手指点指点,谢谢~~ 展开
6个回答
展开全部
select distinct * from ....
知道你这句的意思吗 这里的distinct不是指去除相同bookid的信息,
而是去除所有相同字段的信息。就知道为什么出现那种结果了
例子:
id name
1 A
1 B
1 C
1 A
结果是:
1 A
1 B
1 C
注意事项:这里的两条重复的记录千万不要出现 这只是个例子
可以用 select distinct bokkid ,(其他全部字段..) from ....
知道你这句的意思吗 这里的distinct不是指去除相同bookid的信息,
而是去除所有相同字段的信息。就知道为什么出现那种结果了
例子:
id name
1 A
1 B
1 C
1 A
结果是:
1 A
1 B
1 C
注意事项:这里的两条重复的记录千万不要出现 这只是个例子
可以用 select distinct bokkid ,(其他全部字段..) from ....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前提是这个表的每一行必须要有一个字段的值是唯一的,而且是整型,没有的话最好在结构里加一个,比如这个字段名是:ID
Select bookinfo.bookid,bookinfo.bookname,bookinfo.bookauthor From (
Select Max(ID) As MaxID,bookid,bookname,bookauthor From bookinfo Group By bookid,bookname,bookauthor
) Tmp
Inner Join bookinfo On bookinfo.ID=Tmp.MaxID
SQL里这样写应该可以的。
Select bookinfo.bookid,bookinfo.bookname,bookinfo.bookauthor From (
Select Max(ID) As MaxID,bookid,bookname,bookauthor From bookinfo Group By bookid,bookname,bookauthor
) Tmp
Inner Join bookinfo On bookinfo.ID=Tmp.MaxID
SQL里这样写应该可以的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将select distinct *改成select distinct 具体的字段试试,
然后网上有很多删除重复字段的文章,查下,将重复的删除,然后为表设置主键,这样以后就不会有完全一样的记录了,也就不会造成这样的麻烦了,
呵呵,希望能有帮助,^_^
然后网上有很多删除重复字段的文章,查下,将重复的删除,然后为表设置主键,这样以后就不会有完全一样的记录了,也就不会造成这样的麻烦了,
呵呵,希望能有帮助,^_^
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主既然只想要booid=1234中的任何一条记录,那可以这样:
select top 1 * from bookinfo where booid = '1234'
select top 1 * from bookinfo where booid = '1234'
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的办法是:
例如要清除a表的重复数据;
先暂停服务器访问;
SELECT DISTINCT * INTO b FROM a;
DELETE a;
SELECT DISTINCT * INTO a FROM b;
DROP TABLE b;
呵呵,可能不是好方法,但这样做也得到了我想要的结果
例如要清除a表的重复数据;
先暂停服务器访问;
SELECT DISTINCT * INTO b FROM a;
DELETE a;
SELECT DISTINCT * INTO a FROM b;
DROP TABLE b;
呵呵,可能不是好方法,但这样做也得到了我想要的结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询