簡體   English   中英

PostgreSQL:在一張表上進行子查詢

[英]PostgreSQL: Sub-Query on one table

我的表看起來(簡化)是這樣的:

ID, File, Subst_ID
1, "AAA"
2, "BBB", 3
3, "CCC"

它記錄文件名“文件”; 有時,文件(此處為 BBB)會被更新的文件(此處為 CCC”)替換。首先顯示已被替換的所有記錄:

SELECT ID, File, Subst_ID FROM Table WHERE Subst_ID IS NOT NULL;

好的,出現第2行。現在我需要添加一個子查詢列QQ,它顯示了替代記錄的文件,例如應該帶來:

2, "BBB", 3, "CCC"

. 我的方法不起作用:

SELECT ID, File, Subst_ID, (SELECT File FROM Table WHERE Subst-ID = ID) AS QQ FROM Table WHERE Subst_ID IS NOT NULL;

我的錯誤在哪里? 謝謝!

我認為你想要一個自我加入:

select t1.*, t2.file as subst_file
from mytable t1
inner join mytable t2 on t2.id = t1.subst_id

這是您想要編寫的查詢 - 我發現它不太整潔,因為它需要一個where子句,而上面的則不需要:

select t1.*,
    (select t2.file from mytable t2 where t2.id = t1.subst_id) as subst_file
from mytable t1
where t1.subst_id is not null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM