所以,我正在建立这个论坛。我在撰写优雅的选择查询时无法从数据库获取某个主题的所有帖子。这是架构:
表帖子具有以下结构:
id int(5) not null auto_increment,
user_id int(5) not null,
topic_id int(5) not null,
post_date datetime not null,
现在,还有一个名为附件的表,其中引用了附件。我希望能够只用一个查询选择特定帖子的附件。这是附件表结构:
id int(5) not null auto_increment,
post_id int(5) not null,
post_name varchar(255) not null default '',
path varchar(255) not null,
这不是我的桌子真正的样子。我只是想要一个基本的想法如何做到这一点。我甚至无法想到最少的解决方案。现在附件表有一个引用post表的外键。但是,帖子可能有许多附件。那么如何在一个查询中选择帖子及其所有附件呢?也许子查询可以工作?
答案 0 :(得分:0)
SELECT * FROM attachments WHERE post_id in (SELECT id FROM posts WHERE topic_id = ?);
这样的东西?
编辑: 毕竟不是海报想要的东西。我不认为可以使用您的表结构执行您想要的操作,而不使用多个查询。