我已经开始使用 MySQL 作为数据库进行 PHP 编程,并且我知道基本的 SQL 查询到包含最多两个表的简单 JOINS。
但是,当我需要从 3 个或更多表中获取结果时,我被卡住了。不管我怎么努力,我仍然设法发现自己迷失了方向。我到处寻找关于如何处理复杂 SQL 查询的好教程,但没有找到任何解释如何去做的东西。大多数教程都包含针对特定问题的解决方案,但它们并没有解释如何解决问题的完美一般程序
任何人都可以解释从头到尾的基本通用方式,如何构建查询等,当涉及到复杂查询时。
例如:
我有一个具有以下数据库结构的论坛:
论坛分类:
id | name | desc
论坛主题:
id | category_id | created_on | created_by | title | content
论坛帖子:
id | topic_id | created_on | created_by
用户:
id | first_name | last_name
所有主题都在forumTopic
表中创建。对该主题的所有回复都插入到forumPost
表中。
现在在论坛主页上,我需要显示类别,用户在该特定类别中发布的最后一个帖子,发布最后一个帖子的用户。
我想到的流程是:
通过查看按 topic_id 分组的 forumPost 表中的 MAX(id),找到一个类别中的最后一篇文章。这将为我提供每个主题中最后一篇文章的 ID。
现在再次找到按 category_id 分组的 MAX(我之前得到的 IDS)。这将使我获得每个类别的最后一篇文章。
ID 是自动递增的主键。
但是我一直坚持从上述算法构建 SQL 查询
如果有人可以帮助我解决这个问题,那将非常有帮助。