我有一个拥有许多公司的MySQL数据库(数百个)。对于每个公司,我需要在一个新表中插入一行,该表组合了另一个表中两行的数据。有点像这样:
For each company in Companies{
Get min(AgeInMonths) as YoungestGroup from AgeGroups where companyid = company;
Get max(AgeInMonths) as OldestGroup from AgeGroups where companyid = company;
Insert YoungestGroup,OldestGroup,CompanyId into CombinedAgeGroups
}
我的表格结构(基本上)如下:
公司
AgeGroups
CombinedAgeGroups
因此,在CombinedAgeGroups表中,我需要为每个公司提供一行。如何遍历所有公司,从每个公司的AgeGroups表中获取最年轻的组和最旧的组,并将这些值插入CombinedAgeGroups?
答案 0 :(得分:1)
您可以将INSERT ... SELECT
与分组查询一起使用:
INSERT INTO CombinedAgeGroups (
CompanyId, YoungestGroupId , OldestGroupId
)
SELECT CompanyId, MIN(AgeInMonths), MAX(AgeInMonths)
FROM AgeGroups
GROUP BY CompanyId