本帖最后由 zhang168 于 2010-01-08 15:11:51 编辑

解决方案 »

  1.   

    A表
    uid     uname
    1 天使之城
    2 天使名妆
    3 天空之城
    4 LULA
    5 月光石
    6 霓裳物语
    7 百分一
    8 今天
    9 练习
    10 迟来的爱
    11 兄弟
    12 忘情水
    13 犯错
    14 何必在一起
    15 七年的爱
    16 摇摆
    17 天堂
    18 白雪
    19 独一无二
    20 至少还有你
    21 棉花糖B表
    id     uid      ucomment           utime  
    1 1 呵呵,我又来了! 2009-11-18 09:31:26
    2 1 小帅锅 2009-11-18 09:34:41
    3 2 初来乍到 2009-11-19 12:27:26
    4 2 漂亮宝贝 2009-11-19 12:45:11
    5 2 可爱宝贝~!~ 2009-11-20 11:55:02
    6 3 少林功夫! 2009-11-20 19:37:53
    7 3 真的好可爱、 2009-11-21 17:05:51
    8 4 爱死个人的大宝宝 2009-11-21 20:05:34
    9 4 双手轻轻捧起你的脸 2009-11-21 20:05:54
    10 6 吹干你的泪眼 2009-12-23 09:59:29
    11 6 梦还有空间 2009-12-24 10:47:55
    12 6 我的情感热切危险 2009-12-24 12:29:30
    13 6 多看你一眼就会点燃我心中无法扑灭的火焰 2009-12-24 18:21:27
    14 7 我不断失望 2009-12-24 18:23:28
    15 7 不断希望 2009-12-24 18:29:03
    16 8 苦自己藏笑与你分享 2009-12-25 17:02:55
    17 8 如今站在台上 2009-12-26 11:37:19
    18 9 地球自转一次是一天 2009-12-26 11:39:11
    19 9 那是代表多爱你一天 2009-12-26 11:40:21
    20 9 真善美的爱恋 2009-12-26 11:40:27
    21 9 没有局限,也没有缺陷 2009-12-26 11:41:29
    22 10 地球公转一次是一年 2009-12-26 11:41:35
    23 11 那时代表多爱你一年 2009-12-26 11:41:37
    24 11 恒久的地平线和我的心 2009-12-26 11:41:39
    25 11 永不改变 2009-12-26 11:41:44
    26 13 飞越了时间的局限,拉近地域的平面 2009-12-26 11:41:46
    27 13 紧紧的相恋 2009-12-26 11:41:50
    28 13 绿色上网过滤软件绿坝-花季护航 2009-12-26 11:41:52
    29 14 Cybersitter在起诉书中表示 2009-12-26 11:41:54
    30 14 绿坝两家生产商非法拷贝了 2009-12-26 11:41:56
    31 14 Cybersitter过滤软件逾3000条代码, 2009-12-26 11:41:57
    32 15 并与电脑生产商共同在中国及其他汉语地 2009-12-26 11:42:12
    33 15 区分销逾5600万张绿坝软件拷贝 2009-12-26 11:42:10
    34 15 严重侵犯了该公司的知识产权, 2009-12-26 11:42:17
    35 16 并给公司造成了巨大损失 2009-12-26 11:43:24
    36 16 据悉,该公司旗下名为Cybersitter的软件与绿坝一样 2009-12-26 12:51:54
    37 16 是一款旨在帮助父母对儿童上网内容进行过滤的软件 2009-12-26 12:51:56
    38 17 去年6月,工信部发布通知 2009-12-26 12:51:58
    39 17 要求从2009年7月1日起 2009-12-26 12:51:59
    40 17 在我国境内生产销售的计算机出厂前将预装绿坝 2009-12-26 12:52:01
    41 18 进口计算机在我国销售前也将预装该软件 2009-12-26 12:52:03
    42 18 由财政资金买断绿坝一年服务供全社会免费使用 2009-12-26 12:52:05
    43 18 绿坝的推出一直都伴随着争议 2009-12-26 12:52:07
    44 18 有的消费者担心绿坝是一种流氓软件 2009-12-26 12:52:09
    45 18 有的消费者担心绿坝会泄露个人隐私等 2009-12-26 12:52:28
    46 19 但令 绿坝最为尴尬的还要 2009-12-26 12:53:37
    47 19 属美国密歇根大学去年6月发布的一份研究报告。 2009-12-26 12:53:52
    48 19 密歇根大学对绿坝的这份研究报告称 2009-12-26 12:54:10
    49 19 绿坝包含多个安全漏洞,建议安装了的用户立即卸载 2009-12-26 13:12:43
    50 19 同时还指出绿坝中的部分代码存在侵权 2009-12-26 13:12:45
    51 19 与美国Solid Oak公司设计的软件相同。 2009-12-26 13:14:43
    52 1 Solid Oak是本次案件原告Cybersitter的母公司 2009-12-26 13:13:43
    53 1 随后Solid Oak声称将控告绿坝生产商 2009-12-26 13:17:43
    54 2 不过中方公司亦给与强硬回应。郑州金 2009-12-26 13:12:43
    55 2 惠公司总经理张晨民在接受本报记者专访时曾表示 2009-12-26 11:22:52
    56 10 推出绿坝是在做一件好事 2009-12-26 11:12:52
    57 20 绿坝与Cybersitter的黑名单地址库确有类似之处 2009-12-26 11:23:52
    58 21 但绿坝绝对不存在盗窃代码 2009-12-26 11:24:52
    59 21 知识产权律师姚克枫昨日分析 2009-12-26 11:25:52
    60 20 首先,由于此次纠纷发生地在中国 2009-12-26 11:26:52
    61 18 所涉及的企业也在中国 2009-12-26 11:27:52
    62 18 所以此次Cybersitter起诉地点存有一定争议 2009-12-26 11:28:52
    63 17 此外,22亿美元的赔偿金似乎也不合理 2009-12-26 11:29:52
    64 17 因为这款软件在推广过程中一直是在免费给社会使用 2009-12-26 11:30:52
    65 17 绿坝推广商及企业并非以盈利为主 2009-12-26 11:31:52
    66 16 而像这种跨国官司 2009-12-26 11:32:52
    67 16 非常耗时,拖上好几年是常有的事情 2009-12-26 11:33:52
    68 19 而数额如此巨大可一定程度凸显了原告有炒作嫌 2009-12-26 11:34:52
    69 20 2007年,约有12%的IT工作者属于高度专业人员 2009-12-26 11:35:52
    70 20 Corporate Executive Board信息技术 2009-12-26 11:36:52
    71 19 实践部的监管董事加米卡倍拉(Jaime Capella) 2009-12-26 11:37:52
    72 15 说道:这些都是比较挑剔的IT职员。 2009-12-26 11:38:52
    73 14 们也可能是第一批最有可能离开你公司的职员。 2009-12-26 11:39:52
    74 11 同样,非盈利研究组织Conference Board Inc.5日表示 2009-12-26 11:40:52
    75 12 去年对5000美国家庭的调查显示, 2009-12-26 11:41:52
    76 11 45%的屋主表示对现有工作表示满意 2009-12-26 11:42:52
    77 13 这比起1987年62%的比率下降不少。 2009-12-26 11:43:52
    78 13 来自医疗保险公司基础设施部副总裁迈克汉 2009-12-26 11:44:52
    79 13 根(Mike Hagan)说道:在IT类职业, 2009-12-26 11:45:52
    80 14 有许多处于压抑状态的不满 2009-12-26 11:46:52
    81 14 经济衰退让职员雇主摩擦降至了新低。 2009-12-26 11:47:52
    82 14 一旦经济恢复或是稳定 2009-12-25 11:30:52
    83 15 这些不满的职员会跳槽到别的工作岗位 2009-12-25 11:10:52
    84 15 他接着说道:要想留住雇员 2009-12-25 11:35:52
    85 15 IT经理必须增加和雇员的互动 2009-12-25 11:36:52
    86 15 让雇员了解公司前景 2009-12-25 11:37:52
    87 16 IT经理要能设立出带有目的性的岗位 2009-12-25 11:38:52结果要求
    id     uid     uname        ucomment                utime
    1       1       天使之城 呵呵,我又来了!          2009-11-18 09:31:26
    2       1 天使之城 小帅锅       2009-11-18 09:34:41
    3 2 天使名妆 初来乍到 2009-11-19 12:27:26
    4 2 天使名妆 漂亮宝贝 2009-11-19 12:45:11
    6 3 天空之城 少林功夫! 2009-11-20 19:37:53
    7 3 天空之城 真的好可爱、 2009-11-21 17:05:51
    8 4 LULA 爱死个人的大宝宝 2009-11-21 20:05:34
    9 4 LULA 双手轻轻捧起你的脸 2009-11-21 20:05:54
    10 5 月光石 NULL NULL
    11 6 霓裳物语 吹干你的泪眼 2009-12-23 09:59:29
      

  2.   

    建表语句CREATE TABLE `a` (
      `uid` int(11) NOT NULL auto_increment,
      `uname` varchar(20) default NULL,
      PRIMARY KEY  (`uid`)
    ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;/*Data for the table `a` */insert  into `a`(`uid`,`uname`) values (1,'天使之城'),(2,'天使名妆'),(3,'天空之城'),(4,'LULA'),(5,'月光石'),(6,'霓裳物语'),(7,'百分一'),(8,'今天'),(9,'练习'),(10,'迟来的爱'),(11,'兄弟'),(12,'忘情水'),(13,'犯错'),(14,'何必在一起'),(15,'七年的爱'),(16,'摇摆'),(17,'天堂'),(18,'白雪'),(19,'独一无二'),(20,'至少还有你'),(21,'棉花糖');CREATE TABLE `b` (
      `id` int(11) NOT NULL auto_increment,
      `uid` int(11) default NULL,
      `ucomment` varchar(50) default NULL,
      `utime` varchar(20) default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=88 DEFAULT CHARSET=utf8;/*Data for the table `b` */insert  into `b`(`id`,`uid`,`ucomment`,`utime`) values (1,1,'呵呵,我又来了!','2009-11-18 09:31:26'),(2,1,'小帅锅','2009-11-18 09:34:41'),(3,2,'初来乍到','2009-11-19 12:27:26'),(4,2,'漂亮宝贝','2009-11-19 12:45:11'),(5,2,'可爱宝贝~!~','2009-11-20 11:55:02'),(6,3,'少林功夫!','2009-11-20 19:37:53'),(7,3,'真的好可爱、','2009-11-21 17:05:51'),(8,4,'爱死个人的大宝宝','2009-11-21 20:05:34'),(9,4,'双手轻轻捧起你的脸','2009-11-21 20:05:54'),(10,6,'吹干你的泪眼','2009-12-23 09:59:29'),(11,6,'梦还有空间','2009-12-24 10:47:55'),(12,6,'我的情感热切危险','2009-12-24 12:29:30'),(13,6,'多看你一眼就会点燃我心中无法扑灭的火焰','2009-12-24 18:21:27'),(14,7,'我不断失望','2009-12-24 18:23:28'),(15,7,'不断希望','2009-12-24 18:29:03'),(16,8,'苦自己藏笑与你分享','2009-12-25 17:02:55'),(17,8,'如今站在台上','2009-12-26 11:37:19'),(18,9,'地球自转一次是一天','2009-12-26 11:39:11'),(19,9,'那是代表多爱你一天','2009-12-26 11:40:21'),(20,9,'真善美的爱恋','2009-12-26 11:40:27'),(21,9,'没有局限,也没有缺陷','2009-12-26 11:41:29'),(22,10,'地球公转一次是一年','2009-12-26 11:41:35'),(23,11,'那时代表多爱你一年','2009-12-26 11:41:37'),(24,11,'恒久的地平线和我的心','2009-12-26 11:41:39'),(25,11,'永不改变','2009-12-26 11:41:44'),(26,13,'飞越了时间的局限,拉近地域的平面','2009-12-26 11:41:46'),(27,13,'紧紧的相恋','2009-12-26 11:41:50'),(28,13,'绿色上网过滤软件绿坝-花季护航','2009-12-26 11:41:52'),(29,14,'Cybersitter在起诉书中表示','2009-12-26 11:41:54'),(30,14,'绿坝两家生产商非法拷贝了','2009-12-26 11:41:56'),(31,14,'Cybersitter过滤软件逾3000条代码,','2009-12-26 11:41:57'),(32,15,'并与电脑生产商共同在中国及其他汉语地','2009-12-26 11:42:12'),(33,15,'区分销逾5600万张绿坝软件拷贝','2009-12-26 11:42:10'),(34,15,'严重侵犯了该公司的知识产权,','2009-12-26 11:42:17'),(35,16,'并给公司造成了巨大损失','2009-12-26 11:43:24'),(36,16,'据悉,该公司旗下名为Cybersitter的软件与绿坝一样','2009-12-26 12:51:54'),(37,16,'是一款旨在帮助父母对儿童上网内容进行过滤的软件','2009-12-26 12:51:56'),(38,17,'去年6月,工信部发布通知','2009-12-26 12:51:58'),(39,17,'要求从2009年7月1日起','2009-12-26 12:51:59'),(40,17,'在我国境内生产销售的计算机出厂前将预装绿坝','2009-12-26 12:52:01'),(41,18,'进口计算机在我国销售前也将预装该软件','2009-12-26 12:52:03'),(42,18,'由财政资金买断绿坝一年服务供全社会免费使用','2009-12-26 12:52:05'),(43,18,'绿坝的推出一直都伴随着争议','2009-12-26 12:52:07'),(44,18,'有的消费者担心绿坝是一种流氓软件','2009-12-26 12:52:09'),(45,18,'有的消费者担心绿坝会泄露个人隐私等','2009-12-26 12:52:28'),(46,19,'但令 绿坝最为尴尬的还要','2009-12-26 12:53:37'),(47,19,'属美国密歇根大学去年6月发布的一份研究报告。','2009-12-26 12:53:52'),(48,19,'密歇根大学对绿坝的这份研究报告称','2009-12-26 12:54:10'),(49,19,'绿坝包含多个安全漏洞,建议安装了的用户立即卸载','2009-12-26 13:12:43'),(50,19,'同时还指出绿坝中的部分代码存在侵权','2009-12-26 13:12:45'),(51,19,'与美国Solid Oak公司设计的软件相同。','2009-12-26 13:14:43'),(52,1,'Solid Oak是本次案件原告Cybersitter的母公司','2009-12-26 13:13:43'),(53,1,'随后Solid Oak声称将控告绿坝生产商','2009-12-26 13:17:43'),(54,2,'不过中方公司亦给与强硬回应。郑州金','2009-12-26 13:12:43'),(55,2,'惠公司总经理张晨民在接受本报记者专访时曾表示','2009-12-26 11:22:52'),(56,10,'推出绿坝是在做一件好事','2009-12-26 11:12:52'),(57,20,'绿坝与Cybersitter的黑名单地址库确有类似之处','2009-12-26 11:23:52'),(58,21,'但绿坝绝对不存在盗窃代码','2009-12-26 11:24:52'),(59,21,'知识产权律师姚克枫昨日分析','2009-12-26 11:25:52'),(60,20,'首先,由于此次纠纷发生地在中国','2009-12-26 11:26:52'),(61,18,'所涉及的企业也在中国','2009-12-26 11:27:52'),(62,18,'所以此次Cybersitter起诉地点存有一定争议','2009-12-26 11:28:52'),(63,17,'此外,22亿美元的赔偿金似乎也不合理','2009-12-26 11:29:52'),(64,17,'因为这款软件在推广过程中一直是在免费给社会使用','2009-12-26 11:30:52'),(65,17,'绿坝推广商及企业并非以盈利为主','2009-12-26 11:31:52'),(66,16,'而像这种跨国官司','2009-12-26 11:32:52'),(67,16,'非常耗时,拖上好几年是常有的事情','2009-12-26 11:33:52'),(68,19,'而数额如此巨大可一定程度凸显了原告有炒作嫌','2009-12-26 11:34:52'),(69,20,'2007年,约有12%的IT工作者属于高度专业人员,这个比值现在下降到了4%。','2009-12-26 11:35:52'),(70,20,'Corporate Executive Board信息技术','2009-12-26 11:36:52'),(71,19,'实践部的监管董事加米卡倍拉(Jaime Capella)','2009-12-26 11:37:52'),(72,15,'说道:这些都是比较挑剔的IT职员。','2009-12-26 11:38:52'),(73,14,'们也可能是第一批最有可能离开你公司的职员。','2009-12-26 11:39:52'),(74,11,'同样,非盈利研究组织Conference Board Inc.5日表示','2009-12-26 11:40:52'),(75,12,'去年对5000美国家庭的调查显示,','2009-12-26 11:41:52'),(76,11,'45%的屋主表示对现有工作表示满意','2009-12-26 11:42:52'),(77,13,'这比起1987年62%的比率下降不少。','2009-12-26 11:43:52'),(78,13,'来自医疗保险公司基础设施部副总裁迈克汉','2009-12-26 11:44:52'),(79,13,'根(Mike Hagan)说道:在IT类职业,','2009-12-26 11:45:52'),(80,14,'有许多处于压抑状态的不满','2009-12-26 11:46:52'),(81,14,'经济衰退让职员雇主摩擦降至了新低。','2009-12-26 11:47:52'),(82,14,'一旦经济恢复或是稳定','2009-12-25 11:30:52'),(83,15,'这些不满的职员会跳槽到别的工作岗位','2009-12-25 11:10:52'),(84,15,'他接着说道:要想留住雇员','2009-12-25 11:35:52'),(85,15,'IT经理必须增加和雇员的互动','2009-12-25 11:36:52'),(86,15,'让雇员了解公司前景','2009-12-25 11:37:52'),(87,16,'IT经理要能设立出带有目的性的岗位','2009-12-25 11:38:52');
      

  3.   

    取出A表中前20条记录,:以ID为标准并取出B表中对应uid的前5条记录(按照utime倒序排列)SELECT * FROM a a1 INNER JOIN (
    SELECT a.id,a.ucomment,a.uid,a.utime FROM b a LEFT JOIN b c
    ON a.uid=c.uid AND a.utime<=c.utime
    GROUP BY a.id,a.ucomment,a.uid,a.utime 
    HAVING COUNT(c.id)<=5
    ORDER BY uid) a2
    ON a1.uid=a2.uid
    where a1.id<=20
      

  4.   

    这样的话可以查出部分
    若是a.uid 在B表中出现过,可以查出
    我想做的是,即使a.uid没在B表出现,也要查出相应的空记录
    例如A表的uid=5,在B表未出现,但是也要查出相应的记录
    uid   uname   ucomment   utime
    5     XXXX      NULL      NULL
      

  5.   

    SELECT * FROM a a1 INNER JOIN
      (SELECT a.id,a.ucomment,a.uid,a.utime FROM b a LEFT JOIN b c 
           ON a.uid=c.uid AND a.utime <=c.utime GROUP BY a.id,a.ucomment,a.uid,a.utime 
           HAVING COUNT(c.id) <=5 ORDER BY uid) a2 
    ON a1.uid=a2.uid order by a.id asc limit 0,100
      

  6.   

    当a表的uid在B中不存在时,就查不到相应的信息
    我想要的结果是:即使A表中的uid在B表里面不存在,也要查出相应的空记录,如:
    uid  uname  ucomment  utime 
    5    XXXX      NULL      NULL
    不知道可否达到这样的效果
      

  7.   

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

  8.   

    http://topic.csdn.net/u/20091231/16/2f268740-391e-40f2-a15e-f243b2c925ab.html
    分组取最大N条记录方法征集,及散分(新年,升星)[
      

  9.   


    建表语句和表数据已经在4楼贴出
    至于想达到的效果如:
    id    uid    uname      ucomment                utime 
    1      1      天使之城    呵呵,我又来了!          2009-11-18 09:31:26 
    2      1     天使之城     小帅锅                    2009-11-18 09:34:41 
    3      2     天使名妆     初来乍到                  2009-11-19 12:27:26 
    4      2     天使名妆    漂亮宝贝                   2009-11-19 12:45:11 
    6      3     天空之城    少林功夫!                 2009-11-20 19:37:53 
    7      3     天空之城    真的好可爱、               2009-11-21 17:05:51 
    8      4     LULA       爱死个人的大宝宝           2009-11-21 20:05:34 
    9      4     LULA       双手轻轻捧起你的脸         2009-11-21 20:05:54 
           5     月光石       NULL                    NULL 
    11     6     霓裳物语     吹干你的泪眼               2009-12-23 09:59:29
    12     6     霓裳物语     梦还有空间                 2009-12-24 10:47:55
    此处以取每个uid对应的前2条记录为例,需注意,B表中不存在uid=5的数据,但仍需查出来
    上面列出的是理想效果,请大虾们指点
      

  10.   

    下面语句可以达到你的要求,但没看明白为什么uid>6的你不要了,所以随便猜了个 uid<6select t.id,a.uid,a.uname,t.ucomment,t.utime
    from a left join b t using(uid)
    where 2>(select count(*) from b where uid=t.uid and utime<t.utime)
    and a.uid<=6mysql> select t.id,a.uid,a.uname,t.ucomment,t.utime
        -> from a left join b t using(uid)
        -> where 2>(select count(*) from b where uid=t.uid and utime<t.utime)
        -> and a.uid<=6;
    +------+-----+----------+--------------------+---------------------+
    | id   | uid | uname    | ucomment           | utime               |
    +------+-----+----------+--------------------+---------------------+
    |    1 |   1 | 天使之城 | 呵呵,我又来了!   | 2009-11-18 09:31:26 |
    |    2 |   1 | 天使之城 | 小帅锅             | 2009-11-18 09:34:41 |
    |    3 |   2 | 天使名妆 | 初来乍到           | 2009-11-19 12:27:26 |
    |    4 |   2 | 天使名妆 | 漂亮宝贝           | 2009-11-19 12:45:11 |
    |    6 |   3 | 天空之城 | 少林功夫!         | 2009-11-20 19:37:53 |
    |    7 |   3 | 天空之城 | 真的好可爱、       | 2009-11-21 17:05:51 |
    |    8 |   4 | LULA     | 爱死个人的大宝宝   | 2009-11-21 20:05:34 |
    |    9 |   4 | LULA     | 双手轻轻捧起你的脸 | 2009-11-21 20:05:54 |
    | NULL |   5 | 月光石   | NULL               | NULL                |
    |   10 |   6 | 霓裳物语 | 吹干你的泪眼       | 2009-12-23 09:59:29 |
    |   11 |   6 | 霓裳物语 | 梦还有空间         | 2009-12-24 10:47:55 |
    +------+-----+----------+--------------------+---------------------+
    11 rows in set (0.05 sec)mysql>
      

  11.   

    感谢大神,问题解决了
    不过可否解释一下using(uid)在这里是做什么用的呢?