日期:2014-05-17  浏览次数:20809 次

求一SQL语句!!!
表A
Aid     Aname  
1         贵州    
2         北京    
3         上海    

表B
Bid     Bname   Bclass     time
1         张燕       1             2005
2         王海       1             2006
3         陈磊       2             2007
4         汪峰       3             2008

求:
查询Aname   当Bclass=Aid   并按time排序~~
select   A.Aname   from   A   inner   join   B   on   A.Aid=B.Bclass   group   by   Aname

求上面这句话怎么按time排序?

------解决方案--------------------
select a.aname,b.time as 'time ' from a inner join b on a.aid=b.bclass group by a.aname,b.time order by 'time ' desc

------解决方案--------------------
DISTINCT 关键字可从 SELECT 语句的结果中除去重复的行。如果没有指定 DISTINCT,那么将返回所有行,包括重复的行。例如,如果在 titleauthor 中选择所有作者 ID 时未使用 DISTINCT,那么将会返回下列行(其中包括一些重复的行):

USE pubs
SELECT au_id
FROM titleauthor

下面是结果集:

au_id
-----------
172-32-1176
213-46-8915
213-46-8915
238-95-7766
267-41-2394
267-41-2394
274-80-9391
409-56-7008
427-17-2319
472-27-2349
486-29-1786
486-29-1786
648-92-1872
672-71-3249
712-45-1867
722-51-5454
724-80-9391
724-80-9391
756-30-7391
807-91-6654
846-92-7186
899-46-2035
899-46-2035
998-72-3567
998-72-3567

(25 row(s) affected)

而使用了 DISTINCT 后,就能够除去重复项,而只查看唯一的作者 ID:

USE pubs
SELECT DISTINCT au_id
FROM titleauthor

下面是结果集:

au_id
-----------
172-32-1176
213-46-8915
238-95-7766
267-41-2394
274-80-9391
409-56-7008
427-17-2319
472-27-2349
486-29-1786
648-92-1872
672-71-3249
712-45-1867
722-51-5454
724-80-9391
756-30-7391
807-91-6654
846-92-7186
899-46-2035
998-72-3567

这是我在帮助文档中COPY下来的,其实按下F1,很多问题都能找到解决办法,不用花时间在这里等的。
------解决方案--------------------
select distinct a.aname,b.time as 'time ' from a inner join b on a.aid=b.bclass group by a.aname,b.time order by 'time ' desc
------解决方案--------------------
本来就是1对多怎么能只是显示一个呢