我从mysql数据库中读了一篇文章及其评论,其中包含两个单独的查询
$result = mysql_query("SELECT * FROM articles WHERE article_id='$id'");
$row = mysql_fetch_array($result);
$title=$row['title'];
........
和
$result = mysql_query("SELECT * FROM comments WHERE article_id='$id'");
while($row = mysql_fetch_array($result)) {
$comment_title=$row['title'];
.........
}
是从数据库中读取这组数据的最佳方法吗?要么 是否可以通过一个查询或一个事务来捕获数据?
注意:我的问题是文章的第一次查询仅针对一行;但第二个需要一个循环来处理(并在html中显示)几条评论。
答案 0 :(得分:2)
$result = mysql_query("SELECT articles.title as article_title, comments.title as comment_title FROM articles LEFT JOIN comments ON articles.article_id = comments.article_id WHERE articles.article_id = '$id'");
$row = mysql_fetch_array($result);
$article_title=$row['article_title'];
$comment_title=$row['comment_title '];
答案 1 :(得分:2)
你可以这样做 -
SELECT a.*, c.* FROM articles a
LEFT JOIN comments c
ON a.article_id = c.article_id
WHERE a.article_id='$id';
答案 2 :(得分:0)
是从数据库中读取这组数据的最佳方法吗?
当然,确实如此。
是否可以通过一个查询来捕获数据
是的,这是可能的,但没有必要这样做。
为什么问?