如下4个表进行跨表查询要求写出SQL查询语句,达到如下效果:
 
问题ID    问题分类中文名   问题内容   对应的回答类列  对应的评论列表例如
 
问题1   分类1   问题1的内容     问题1的 回答1
                                                问题1 的回答1的评论1
                                               问题1 的回答1的评论2
                                                问题1 的回答1的评论3
                                              ……
                                            问题1的 回答2
                                           问题1 的回答2的评论1
                                          问题1 的回答2的评论2
                                            ……
问题2   分类2   问题2的内容           问题2的回答1
                                                  问题2的回答1的评论1
                                                  问题2 的回答1的评论2
                                                           ……
                                                        问题2的 回答2
                                                       问题2的回答2的评论1
                                                      问题2的 回答2的评论2
                                                ……
……
 (格式可能做不到,主要是内容能逐一分别列出来)
求助, 感谢!!!数据库如下:
MYSQL数据库-- 表的结构 `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 ;INSERT INTO `answer` (`id`, `qid`, `content`) VALUES
(1, 1, '问题1的回答1'),
(2, 1, '问题1的回答2'),
(3, 2, '问题2的回答1'),
(4, 1, '问题1的回答3'),
(5, 2, '问题2的回答2');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 ;INSERT INTO `comment` (`id`, `aid`, `content`) VALUES
(1, 2, '问题1回答2的评论1'),
(2, 2, '问题1的回答2的评论2'),
(3, 1, '问题1的回答1的评论1'),
(4, 2, '问题1的回答2的评论3');

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 ;INSERT INTO `fl` (`id`, `name`) VALUES
(1, '分类1'),
(2, '分类2');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 ;INSERT INTO `question` (`id`, `cid`, `title`, `cotent`) VALUES
(1, 1, '问题1', '问题1的内容'),
(2, 2, ' 问题2', '问题2的内容');

解决方案 »

  1.   

    这些记录是哪儿来的? 在你提供的测试数据中找不到这个结果。mysql> select * from answer;
    +----+-----+--------------+
    | id | qid | content      |
    +----+-----+--------------+
    |  1 |   1 | 问题1的回答1 |
    |  2 |   1 | 问题1的回答2 |
    |  3 |   2 | 问题2的回答1 |
    |  4 |   1 | 问题1的回答3 |
    |  5 |   2 | 问题2的回答2 |
    +----+-----+--------------+
    5 rows in set (0.00 sec)mysql> select * from comment;
    +----+-----+---------------------+
    | id | aid | content             |
    +----+-----+---------------------+
    |  1 |   2 | 问题1回答2的评论1   |
    |  2 |   2 | 问题1的回答2的评论2 |
    |  3 |   1 | 问题1的回答1的评论1 |
    |  4 |   2 | 问题1的回答2的评论3 |
    +----+-----+---------------------+
    4 rows in set (0.00 sec)mysql> select * from fl;
    +----+-------+
    | id | name  |
    +----+-------+
    |  1 | 分类1 |
    |  2 | 分类2 |
    +----+-------+
    2 rows in set (0.00 sec)mysql> select * from question;
    +----+-----+--------+-------------+
    | id | cid | title  | cotent      |
    +----+-----+--------+-------------+
    |  1 |   1 | 问题1  | 问题1的内容 |
    |  2 |   2 |  问题2 | 问题2的内容 |
    +----+-----+--------+-------------+
    2 rows in set (0.00 sec)mysql>