需求:有三张表,取出三个值,分别为vTitle,lesson,cDate。我需要的对题目(vTitle)进行分组,
对时间(cDate)进行最新的查询。我自己写的sql如下
//查询观看历史记录
        $uc=$_SESSION['login'];
$sql = "select v.iId, v.iNo, v.vTitle, l.vTitle as lesson, h.cDate from user_video_history h"." join biz_video v on h.iVideoId=v.iId join biz_lesson l on v.iLessonId=l.iId"." where h.vUserCode='".$uc."' group by vTitle order by cDate desc limit 0, 20";
我实现的效果,对题目进行了分组,但是时间却不是最近的时间。这个功能是查询视频观看记录。我的表如下

解决方案 »

  1.   

       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
      

  2.   


    CREATE TABLE IF NOT EXISTS `user_video_history` (
      `vUserCode` varchar(32) NOT NULL,
      `iVideoId` int(10) unsigned NOT NULL,
      `cDate` char(19) NOT NULL DEFAULT '',
      PRIMARY KEY (`vUserCode`,`iVideoId`,`cDate`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;CREATE TABLE IF NOT EXISTS `biz_lesson` (
      `iId` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `vDomain` varchar(32) NOT NULL,
      `vCatalog` varchar(32) NOT NULL,
      `vLecturer` varchar(32) NOT NULL DEFAULT 'microoh',
      `vTitle` varchar(128) NOT NULL,
      `murl` varchar(255) DEFAULT NULL COMMENT '背景图片',
      `vadsurl` varchar(255) DEFAULT NULL COMMENT '宣传图URL',
      `vKeywords` varchar(255) NOT NULL DEFAULT '',
      `iCredit` int(10) unsigned NOT NULL DEFAULT '0',
      `vDesc` varchar(255) NOT NULL DEFAULT '',
      `vMemo` varchar(255) NOT NULL DEFAULT '',
      `vRelated` varchar(255) NOT NULL DEFAULT '',
      `cDate` char(19) NOT NULL DEFAULT '',
      `iNo` int(10) unsigned NOT NULL DEFAULT '0',
      `tType` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '0:点播,1:讲座',
      `iVideoCt` int(11) NOT NULL DEFAULT '0',
      `iHours` int(10) unsigned NOT NULL DEFAULT '0',
      `vForPpl` varchar(128) NOT NULL DEFAULT '',
      `vDocUrl` varchar(255) NOT NULL,
      `vDesc2` varchar(255) NOT NULL DEFAULT '',
      `recommend` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`iId`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=26 ;CREATE TABLE IF NOT EXISTS `biz_video` (
      `iId` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `vCode` varchar(32) DEFAULT NULL,
      `iLessonId` int(11) NOT NULL,
      `vTitle` varchar(32) NOT NULL,
      `tType` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0:点播1:讲座',
      `iCredit` int(11) NOT NULL DEFAULT '0',
      `vDesc` varchar(255) NOT NULL DEFAULT '',
      `vMemo` varchar(255) NOT NULL DEFAULT '',
      `vUrl` varchar(255) NOT NULL DEFAULT '',
      `tPeriod` tinyint(3) unsigned NOT NULL DEFAULT '0',
      `iNo` int(10) unsigned DEFAULT '0',
      `cDate` char(19) DEFAULT NULL,
      `vLecturer` varchar(32) NOT NULL,
      `vKeywords` varchar(255) NOT NULL DEFAULT '',
      `iTime` int(10) unsigned NOT NULL DEFAULT '0',
      `vDesc2` varchar(255) NOT NULL DEFAULT '',
      `vrecommend` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`iId`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=330 ;
      

  3.   

    这上面就是我的mysql的表结构
      

  4.   

    2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)