簡體   English   中英

我怎樣才能 select 行從同一個表中加入一個額外的列

[英]How can I select rows with an extra column joined from the same table

我有一張這樣的桌子:

id | path      | name | date       | data
---+-----------+------+------------+-----
1  | Docs      | 1000 | 2022-01-01 | aaa0
2  | Docs/1000 | Text | 2022-01-11 | AAA0
3  | Docs      | 1001 | 2022-02-02 | aaa1
4  | Docs/1001 | Text | 2022-02-12 | AAA1

我怎樣才能 select 路徑為“文檔”的所有行並添加相應“文本”的日期,即:

id | path | name | date       | date_of_text | data
---+------+------+------------+--------------+-----
1  | Docs | 1000 | 2022-01-01 | 2022-01-11   | AAA0
3  | Docs | 1001 | 2022-02-02 | 2022-02-12   | AAA1

您可以通過自連接實現預期的結果 -

SELECT T1.id, T1.path, T1.name, T1.date, T2.date date_of_text, T2.data
  FROM table_name T1
  LEFT JOIN table_name T2 ON T1.name = SUBSTRING(path, POSITION("/" IN path) + 1, LENGTH(path))
 WHERE T1.path = 'Docs'

有很多方法可以做到這一點,包括

相關子查詢

select t.*,id % 2 ,(select date from t t1 where t1.ID = t.id + 1) datetext
from t
where id % 2 > 0;

自我加入

select t.*,t.id % 2 , t1.date
from t
join t t1 on t1.ID = t.id + 1
where t.id % 2 > 0;

聚合

select min(id) id,min(path) path,min(date) date,upper(data) data ,max(date) datetext
from t
group by t.data;

暫無
暫無

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

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