2012-10-05 56 views
0

我有两个表;一个带有发布数据,另一个每行都有一个标签和发布ID(FK)。
是否可以使用单个查询从这两个表中选择一个包含其所有标记的帖子?怎么样?从一个查询中选择一个帖子及其所有标签

感谢

+0

你能提供样品的输入和输出数据? –

回答

0

我想你可以转身查询

SELECT * FROM post p 
INNER JOIN TABLE tag 
ON tag.tag_id = p.tag_id 
WHERE p.post_id=? 

虽然我不认为这将是比做2个独立的查询


编辑

更快

下面的评论认为做一个加入比两个单独更快查询。

+0

是的,这是正确的。但是:请不要使用隐式联接(以逗号分隔的'FROM'子句)语法,因为它在每个主要RDBMS上都被弃用了。并且在我知道的每个系统上,执行(简单)'JOIN'(通过正确设置的数据库)_将比尝试执行2个单独的查询更快。 –

+0

@ Clockwork-Muse。 。 。我同意你的评论大部分。不幸的是,大多数数据库中都没有弃用逗号。有许多理由不使用它,但弃用不是其中之一。唉。 –

+0

很高兴知道!我编辑过它,现在将使用JOIN运算符。虽然有些uni仍然给逗号分隔的表格做一个连接的方法;) 无论如何感谢您的建议 – charly

2

假设你有一个名为职位表(ID,内容)和标签(POST_ID,标签):

SELECT posts.id, posts.content, tags.tag FROM posts 
    LEFT JOIN tags ON tags.post_id = posts.id 
WHERE posts.id = ? 
相关问题