gpt4 book ai didi

sql - 在 PostgreSQL 的 2 个不同表上加入 2 个选择查询

转载 作者:行者123 更新时间:2023-11-29 11:16:39 25 4
gpt4 key购买 nike

我在 2 个不同的表上有两个单独的查询,我试图将它们合并到一个查询中。两个表都在同一模式中。

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

会将第一个的所有结果与具有相同修改日期的第二个的所有结果合并。

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

关于sql - 在 PostgreSQL 的 2 个不同表上加入 2 个选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16653828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com