我在两个不同的表上有两个单独的查询,我试图加入一个查询.两个表都在同一模式中.
我正在尝试形成一个查询,它将在论坛中返回最新帖子的forumid,threadid和主题.我可以使用下面写的两个查询,但为了提高效率,我宁愿只使用一个,如果可能的话.
以下是我的疑问:
- 1>
- SELECT forumid,threadid
- FROM threadtable
- WHERE modifieddate = (select max(modifieddate) from threadtable);
- 2>
- SELECT subject
- FROM messsagetable
- WHERE modifieddate = (select max(modifieddate) from messsagetable);
我尝试了一些解决方案,但似乎是围成一圈.任何建议赞赏.版本是Postgres 8.1.
- SELECT * FROM
- (SELECT forumid,threadid
- FROM threadtable
- WHERE modifieddate = (SELECT MAX(modifieddate) FROM threadtable)) a,(SELECT subject
- FROM messsagetable
- WHERE modifieddate = (SELECT MAX(modifieddate) FROM messsagetable)) b
将第一个结果与第二个结果相结合
- SELECT * FROM
- (SELECT forumid,threadid,modifieddate
- FROM threadtable
- WHERE modifieddate = (SELECT MAX(modifieddate) FROM threadtable)) a
- INNER JOIN
- (SELECT subject,modifieddate
- FROM messsagetable
- WHERE modifieddate = (SELECT MAX(modifieddate) FROM messsagetable)) b
- ON a.modifieddate = b.modifieddate
将来自第一个的所有结果与具有相同修改日期的第二个结果组合在一起.
由于两个查询只返回一个结果,您很可能想要第一个建议.