所以,基本上,我有一个名为'主题'的MySQL表格,另一个名为'回复',例如。在表格“主题”中,有一个名为“relforum”的字段,它将此主题与论坛部分相关联。在表格'回复'中,有一个名为'reltopic'的字段,它将回复与主题联系起来。两个表都有一个id字段,即auto_increment主键。这个查询可以在没有循环的情况下完成吗?
现在,我想选择某个论坛的所有回复。由于人的答复“没有“relforum”字段,我的办法是:
- 选择带有“relforum”等于某些论坛和循环通过他们的所有主题
- 而在循环中,从所有回复正在处理的主题
- 将所有fetch_array结果合并到一个多维数组中,然后遍历它们。
这是这样的:
$query = mysql_query("SELECT * FROM `topics` WHERE `relforum` = '1'");
while($array = mysql_fetch_array($query)) {
$temp = mysql_query("SELECT * FROM `replies` WHERE `reltopic` = {$array['id']}");
$results[] = mysql_fetch_array($temp);
}
有没有一种方法来合并所有为较少的疑问?因为这个过程基本上会在该论坛的每个主题上运行一个查询加一个查询。这将是太多了:P
将relforum字段添加到答复表是一个解决方案(我仍在设计数据库部分,所以它不是一个问题添加它),但我想看看是否有一个解。我真的不善于SQL的东西,我只知道基本的SELECT/INSERT/UPDATE,而且我通常使用PHPMyAdmin生成最后两个,所以...我想我需要一些帮助。
感谢您的阅读!
我这样做是同一类型的错误,当我许多年前编写了一个论坛,论坛社区长大了很多,我踢出了多个托管提供商使用太多资源:) – 2009-12-14 21:06:36