在这种情况下如何避免做100次查询?

xRo*_*bot 1 php mysql

我在php/mysql中创建了一个简单的博客,在主页上显示最新的100个帖子,每个帖子显示评论的编号.

这是伪代码:

 Mysql query to get latest 100 posts.
 While cicle:
    Get title and body of each post.
    Mysql query to get the comments's number of the post.
Run Code Online (Sandbox Code Playgroud)

数据库结构:

Post:
-id
-title
-body
-date

Comments:
-id
-id_post
-id_user
-body
-date
Run Code Online (Sandbox Code Playgroud)

有没有办法避免100个查询?

Álv*_*lez 6

这是一个相当简单的查询:

SELECT p.id, p.title, p.body. p.date, COUNT(c.id) AS comment_count
FROM Post p
LEFT JOIN Comments c ON p.id=c.id_post
GROUP BY p.id, p.title, p.body. p.date
ORDER BY p.id DESC
LIMIT 100
Run Code Online (Sandbox Code Playgroud)

(请注意,它是未经测试的,以此为出发点.)

我知道,人们普遍认为数据库只不过是一个奇特的文件系统而且SELECT * FROM data是你需要知道的所有SQL,但是花一些时间学习基本的SQL它绝对值得付出努力.