SELECT
a1.name,
a1.type1,
a1.type2,
b1.name,
b1.type3,
b1.type4
FROM
( SELECT row_number () over ( partition BY name ORDER BY type1, type2 ) AS id, name, type1, type2 FROM a ) a1
full outer join
( SELECT row_number () over ( partition BY name ORDER BY type3, type4 ) AS id, name, type3, type4 FROM b ) b1
ON a1.name = b1.name AND a1.id = b1.id
--补充一点:mysql不支持full outer join,所以该语句在mysql下不能执行
已解决........