加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在PostgreSQL中的2个不同表上连接2个选择查询

发布时间:2020-12-13 16:12:50 所属栏目:百科 来源:网络整理
导读:我在两个不同的表上有两个单独的查询,我试图加入一个查询.两个表都在同一模式中. 我正在尝试形成一个查询,它将在论坛中返回最新帖子的forumid,threadid和主题.我可以使用下面写的两个查询,但为了提高效率,我宁愿只使用一个,如果可能的话. 以下是我的疑问: 1
我在两个不同的表上有两个单独的查询,我试图加入一个查询.两个表都在同一模式中.

我正在尝试形成一个查询,它将在论坛中返回最新帖子的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

将来自第一个的所有结果与具有相同修改日期的第二个结果组合在一起.

由于两个查询只返回一个结果,您很可能想要第一个建议.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读