-2

所以我的数据库中有 3 个表,比如说 1_comments、2_comments 和 3_comments,我想在 PHP 中一次显示所有 3 个表的最新 5 个帖子并按最近时间排序。我的代码是:

<?php
  $row="";

  $link = mysql_connect("localhost","username","password");
  mysql_select_db("database");
  $query = "SELECT * from 1_comments  ORDER by timestamp DESC limit 5";
  $result = mysql_query($query);

  while($row = mysql_fetch_array($result)) {
    echo "<ul>";
    echo "<li>".$row['comment']."</li>";
    echo "</ul>";
  } 

  mysql_close($link);
?>

因此,它从 1_comments 的评论行中获取最近的 5 个帖子,并按它们最近的时间戳对其进行排序,但我似乎无法同时为 1_comments、2_comments 和 3_comments 工作。

4

1 回答 1

0

如果所有表都具有相同的结构,您可以使用UNION.

就像是:

(SELECT * from 1_comments  ORDER by timestamp DESC limit 5)
UNION
(SELECT * from 2_comments  ORDER by timestamp DESC limit 5)
UNION
(SELECT * from 3_comments  ORDER by timestamp DESC limit 5)
ORDER BY timestamp DESC limit 5

但是,我会仔细查看数据库结构并尝试将 3 个相似的表减少到只有一个。

于 2013-04-19T01:46:09.330 回答