问题描述
我有三个表,board,title,和retitlesql语句如下:SELECTDISTINCTboard.boardname,board.remark,board.id,Title.name,Title.creatdateFROMboardINNERJOINTitleONboard.id=Title.boardidINNERJOINretitleONTitle.id=retitle.titleidORDERBYboard.id显示结果如下:boardnameremarkidnamecreatdate技术交流交流心得。。1112008-3-38:30:30技术交流交流心得。。1222008-3-48:20:30提问专区全新的。。。2332008-3-38:20:30图形图像灵感天堂。。3442008-4-38:20:30图形图像灵感天堂。。3552008-4-38:20:00美化专区不同界面。。6662008-4-48:20:00美化专区不同界面。。6772008-4-38:10:00美化专区不同界面。。6882008-4-38:20:00我现在想显示如图(保留时间最前的不同boardname):boardnameremarkidnamecreatdatecount技术交流交流心得。。1112008-3-38:30:302提问专区全新的。。。2332008-3-38:20:301图形图像灵感天堂。。3442008-4-38:20:302美化专区不同界面。。6662008-4-48:20:003望高手解决,谢谢了!!最好能把count(Title.name)一起求出来。。。谢谢了
解决方案
解决方案二:
可是name,creatdate字段的数据也不相同,要保留吗?如果不需要保留以上两个字段,在orderby前增加个groupbySELECTDISTINCTboard.boardname,board.remark,board.id,max(Title.creatdate)creatdateFROMboardINNERJOINTitleONboard.id=Title.boardidINNERJOINretitleONTitle.id=retitle.titleidgroupbyboard.boardname,board.remark,board.idORDERBYboard.id
解决方案三:
那个count怎么加的,谢谢你了,前面的都能出来了,就是有一个boardnameremarkidnamecreatdatenum技术交流交流心得。。1112008-3-38:30:302提问专区全新的。。。2332008-3-38:20:301图形图像灵感天堂。。3442008-4-38:20:302美化专区不同界面。。6662008-4-48:20:003这里的num怎么样让他出来谢谢了
解决方案四:
在select里增加统计列count(board.id)numSELECTDISTINCTboard.boardname,board.remark,board.id,max(Title.creatdate)creatdate,count(board.id)numFROMboardINNERJOINTitleONboard.id=Title.boardidINNERJOINretitleONTitle.id=retitle.titleidgroupbyboard.boardname,board.remark,board.idORDERBYboard.id
解决方案五:
selecta.boardname,a.remark,a.id,Count(a.id)asTitleNameCount,MAX(a.createdate)asLastUpdateTimefrom(SELECTDISTINCTboard.boardname,board.remark,board.id,Title.name,Title.creatdateFROMboardINNERJOINTitleONboard.id=Title.boardidINNERJOINretitleONTitle.id=retitle.titleidORDERBYboard.id)agroupbya.boardname,a.remark,a.id
解决方案六:
写错了,第一行的Count(a.id)应该改为Count(a.name)