我有一个问题,可以用一个类似于SO的系统来模拟:帖子和标签。为了让我的帖子,我可能会做这样的事情:如何将第二个查询“水平化”到我的第一个查询中?
SELECT title, body, author FROM posts WHERE id = ?
,然后让我的标签非常简单
SELECT tag_id FROM tags_on_posts WHERE post_id = ?
比方说,我有个限度,像这样做,你只能每5个标签帖子。无论如何,我可以在单个查询中做到这一点?
SELECT title, body, author, tag1, tag2, tag3, tag4, tag5
FROM posts
JOIN /*help*/
WHERE id = ?
[你有没有试过SQL Pivot?](http://technet.microsoft.com/en-us/library/ms177410(v = sql.105).aspx),它们可能很痛苦,但是非常有用。 [你也可以动态与他们](http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query) – TheNorthWes
我忽略了我的数据库特定的标记。我正在研究Postgres。现在我知道术语PIVOT,我刚开辟了一条新的研究大道。 – corsiKa
啊,好吧,我希望这些途径有所帮助。如果你知道它总是5 ...你可以使用临时表来构造两个中间表,然后将它们合并到第三个中间表中。 – TheNorthWes