首页 > 解决方案 > mysql - 组合连接和联合操作

问题描述

我有两张表地图和历史

地图有 ID 和区域名称

ID    region
N1    R1
N2    R2
N3    R3

history 有 ID 变化的历史,所以新旧 ID

old   new
O1    N1
O2    N3 

我想附加这两个表,以确保旧 ID 仍然指向其对应的新 ID 的区域

ID    region
N1    R1
N2    R2
N3    R3
O1    R1
O2    R3

我能想到的唯一方法是加入这两个表,从新表中获取旧表和新表并将其与映射表联合。有没有更好的办法?

标签: mysql

解决方案


我认为您对工会和加入的看法是正确的。像这样的东西应该可以正常工作:

SELECT 
    ID, region
FROM
    map
UNION
SELECT
    h.old, m.region
FROM
    history h Left Join
    map m ON h.new = m.ID

推荐阅读