如下4个表进行跨表查询
 
1、问题表
表名:Question (一个问题一条记录)
Id 问题ID
cid 分类ID
title 问题标题
des 问题内容
 
2、回答表(一个问题可以有多条回答)
表名:Answer
ID  回答ID
Qid  问题ID
Content  回答内容
 
3、评论表(对回答进行评论,一个回答可以有多个评论)
表名:comment
Id 评论ID
Aid 回答ID
Content 评论内容
 
4、分类表(一个问题对应1个分类)
表名:fl
Id 分类id
Name 分类中文名
 
要求写出SQL查询语句,达到如下效果:
 
问题ID(相同只显示1个)    问题分类中文名(相同只显示1个)  对应的回答类列  对应的评论列表
例如
 
问题1   分类1      回答1
                               回答1的评论1
                                回答1的评论2
                                 ……
                           回答2
                                回答2的评论1
                               回答2的评论2
                                 ……
问题2   分类3     回答1
                                    回答1的评论1
                                   回答1的评论2
                                     ……
                           回答2
                                    回答2的评论1
                                    回答2的评论2
                                  ……
……
 
求助, 感谢!!!

解决方案 »

  1.   

    导出数据库了,可以把下面的另存为.sql文件导入。
    所有问题都有1个分类
    无答案、无评论的也显示
    谢谢
    --
    -- 表的结构 `answer`
    --CREATE TABLE `answer` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `qid` int(10) unsigned NOT NULL default '0',
      `content` mediumtext NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `qid` (`qid`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=44 ;--
    -- 导出表中的数据 `answer`
    --INSERT INTO `answer` (`id`, `qid`, `content`) VALUES
    (1, 1, '1111111111'),
    (2, 1, '呆呆呆呆呆呆地'),
    (3, 2, '贴贴贴贴贴贴贴'),
    (4, 1, '333333333'),
    (5, 2, '家家家家家家');-- ----------------------------------------------------------
    -- 表的结构 `comment`
    --CREATE TABLE `comment` (
      `id` int(10) NOT NULL auto_increment,
      `aid` int(10) NOT NULL,
      `content` varchar(100) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=121 ;--
    -- 导出表中的数据 `comment`
    --INSERT INTO `comment` (`id`, `aid`, `content`) VALUES
    (1, 2, '我要评论'),
    (2, 2, '评论2'),
    (3, 1, '非常感谢!'),
    (4, 2, '我问问'),
    (5, 3, '22333333'),
    (6, 3, '22333333'),
    (7, 3, '22333333'),
    (8, 3, '22333333'),
    (9, 3, '22333333'),
    (10, 3, '22333333'),
    (13, 3, '测试评论'),
    (14, 1, '33333'),
    (15, 1, '33333');-- ----------------------------------------------------------
    -- 表的结构 `fl`
    --CREATE TABLE `fl` (
      `id` smallint(5) unsigned NOT NULL auto_increment,
      `name` char(30) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ;--
    -- 导出表中的数据 `fl`
    --INSERT INTO `fl` (`id`, `name`) VALUES
    (1, '分类1'),
    (2, '分类2');-- ----------------------------------------------------------
    -- 表的结构 `question`
    --CREATE TABLE `question` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `cid` smallint(5) unsigned NOT NULL default '0',
      `title` char(50) NOT NULL,
      `cotent` text NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=82 ;--
    -- 导出表中的数据 `question`
    --INSERT INTO `question` (`id`, `cid`, `title`, `cotent`) VALUES
    (1, 1, '外网 提问1', '巴巴爸爸'),
    (2, 2, ' 提问2', 'uuuuuuu');