我有下表,其中包含PostID和到rootPostId的映射
CREATE TABLE "PostMap" (
"postId" BIGINT,
"rootPostId" BIGINT );
INSERT INTO "PostMap" ("postId","rootPostId") VALUES (1,1);
INSERT INTO "PostMap" ("postId","rootPostId") VALUES (2,1);
INSERT INTO "PostMap" ("postId","rootPostId") VALUES (3,3);
INSERT INTO "PostMap" ("postId","rootPostId") VALUES (4,1);
postId,rootPostId
1,1
2,1
3,3
4,1
我有以下疑问:
SELECT "postId"
FROM "PostMap"
WHERE "rootPostId" = (
SELECT "rootPostId"
FROM "PostMap"
WHERE "postId" = 2
)
返回结果:
postId
1,
2,
4
我希望返回以下内容,以便返回的第一个postId是传递到查询中的相应postId(postId=2),如下所示。
返回所需结果:
postId
2,
1,
4
您可以添加:
order by (postid = 2) desc
这在Postgres和MySQL中都可以使用。