我想将值从一个表插入另一个表。
我有一个下表:
Act (
id INT NOT NULL AUTO_INCREMENT,
type VARCHAR(20),
Act_date DATETIME,
place VARCHAR(20)
);
其中 type 有 2 个可能的值:“出生”和“死亡”。所有列均已填满。 现在,我正在尝试创建一个过程或函数来计算给定时间内“出生”类型的行为和“死亡”类型的行为之间的差异,并将结果放入不同的表中,例如:
Population_Growth(
id INT NOT NULL AUTO_INCREMENT,
time DATE,
place VARCHAR(20),
result INT
);
其中结果是“出生”类型的行为和“死亡”类型的行为之间的差异
如果有任何帮助,我将不胜感激。
最佳答案
这太长了,无法写在评论中,这不是您现在问题的答案,但这是我的推荐。为什么不在同一个表中只包含出生列和死亡列呢?就我个人而言,我会这样做:
Act (
id INT NOT NULL AUTO_INCREMENT,
birth_date DATETIME,
death_date DATETIME,
place VARCHAR(20)
);
Population_Growth(
id INT NOT NULL,
result INT
);
两者都将 ID 作为主键,在人口增长中将 ID 作为外键。除了 Population_Growth 中的结果之外,您不需要任何其他内容,因为您可以引用 Act 中该地点的 ID。避免在 SQL 中重复数据,除非您有充分的理由这样做。
然后您可以使用 Act 表中的信息进行插入。 TIMESTAMPDIFF 将返回两个日期之间的差值的整数。我不确定你是否想要年、月、秒等。
INSERT INTO Population_Growth
SELECT id, TIMESTAMPDIFF(YEAR, death_date, birth_date) FROM Act
WHERE death_date IS NOT NULL AND birth_date IS NOT NULL;
关于mysql - MySQL如何处理一张表中的数据并将其插入到另一张表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24153489/