湛江今日最新招聘司机:请教DISTINCT的用法

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/20 02:59:18
我现在有一个表book有两个字段
作者 作品
auther article
记录值如下
张三 作品一
李四 作品二
张三 作品三
张三 作品四
李四 作品五
王五 作品六

我现在想读取每位作者的代表作和作者姓名
也就是如下数据

张三 作品一
李四 作品二
王五 作品六

如果用select DISTINCT auther from book的话就取不到article字段
如果用select DISTINCT auther,article from book的话就一条都没筛选

我对SQL语法不大了解,请问这个select语句该怎么写啊?网上搜了三个多小时还是没搜到,高手救命啊

我觉得很神奇,好几个人问过这样的问题,其实就一个原因,没有主键,简单的就加个自增长ID就好了。然后你的问题就简单了。

select author,article from book
where [id] in (select MAX([id]) from book group by author)

有点麻烦咯,允许再添一个“代表作”的字段吗,这样得话就不用死那么多脑细胞了

distinct 的作用是消除重复的内容,首先为你见的,如果你用第一个代码的话,你所列出来的只有作者的名字,单看作者一列,去掉重复得值,只有三个内容,如果你加上了文章的名字,那么,张三 作品1和张三 作品3 是不同的,它是看整体的。所以不会筛选掉的,对于你所要选的纪录个人认为,用distinct不是很合适