我是sql的新手,并且遇到以下问题, 在sqlite中,我感兴趣的是找到如何将一个表中的数据添加到另一个表中,其中x列中的数据应与Y列中的数据相对应。
例如,假设我的表格(Eruptions
)由4列组成:
Eruption Number (PK)
Volcano Number
Volcano name
start date
我创建了一个名为Eruptions_since_2000的新表,并且有兴趣将原始表中的值添加到新表中。
新表(Eruptions_since_2000
)包含4个空列:
eruption_number(PK,unique,not null)
volcano_number
volcano_name
start_date
在第一步中,我使用以下代码将爆发编号(来自原始表)中的数据添加到新表中的eruption_number中:
INSERT INTO Eruptions_since_2000 (Eruption_number) SELECT Eruption Number
from Eruptions where start year >= 2000
现在,我还要添加以下几列(火山号,火山名称和开始日期)。但是,每个条目当然都需要对应于各自的喷发编号。这就是我遇到的问题,我不确定该怎么做。 它应该类似于我上面的代码行,但是与喷发编号对应的/对应的火山编号是如何添加的。
谢谢
答案 0 :(得分:1)
实现所需目标的最有效方法是:
(1)删除self.isAscending = true;
self.sortTitle = function () {
if(self.isAscending){
self.arr= self.arr.sort((a, b) => (a.title > b.title) ? 1 : -1);
}else{
self.arr= self.arr.sort((a, b) => (a.title > b.title) ? -1 : 1);
}
self.isAscending = !self.isAscending;
}
的所有行:
Eruptions_since_2000
(2)将所有列的列值分别为DELETE FROM Eruptions_since_2000;
到Eruptions
的行:
Eruptions_since_2000
我想您已经使用了INSERT INTO Eruptions_since_2000 (Eruption_number, Volcano_Number, Volcano_name, start_date)
SELECT Eruption_number, Volcano_Number, Volcano_name, start_date
FROM Eruptions WHERE start_year >= 2000
来计算。
备用方法是使用Row values的UPDATE语句,SQLite版本start_year
支持此{3>}
3.15.0
如果您的SQLite版本低于update Eruptions_since_2000
set
(Volcano_Number, Volcano_name, start_date) = (
select e.Volcano_Number, e.Volcano_name, e.start_date
from Eruptions e
where e.Eruption_number = Eruptions_since_2000.Eruption_number
)
,请使用以下效率较低的UPDATE语句:
3.15.0