思路:select emp.name,dept.name from emp join dept on emp.deptID = dept.ID
数据源
职员表 emp
name deptID
张山 1
李斯 1
晓明 1
龙龙 2
呆呆 2
姗姗 5
部门表 dept
ID name
1 开发部
2 研发部
3 运营部
4 销售部
5 行政部
期望结果:
张山 开发部
李斯 开发部
晓明 开发部
龙龙 研发部
呆呆 研发部
姗姗 行政部
map执行过程:
以数字作为突破口
若该行记录以数字开头,则从行首开始处理,将数值部分作为key,非数字部分作为value ,分割点是空白
若该行记录以非数字开发,则从行尾开始处理,将数值部分作为key,非数字部分作为value。分隔点是空白
map任务结果:
1 1+张山
1 1+李斯
1 1+晓明
2 1+龙龙
2 1+呆呆
5 1+姗姗
1 2+开发部
2 2+研发部
3 2+运营部
4 2+销售部
5 2+行政部
洗牌结果:
(1,(1+张山,1+李斯,1+晓明,2+开发部 ))
(2,(1+龙龙,1+呆呆,2+研发部))
(3,(2+运营部))
(4,(2+销售部))
(5,(1+姗姗,2+行政部))
reduce执行过程:
将value中含有1标示符的记录取出第二个元素加入A数组
得到A数组(张山,李斯,晓明)
将value中含有2标示符的记录取出第二个元素加入B数组
得到B数组(开发部)
对AB取 笛卡尔积
单一结果:
(张山,开发部)
(李斯,开发部)
(晓明,开发部)
其他reduce过程(略)
最终结果:
张山 开发部
李斯 开发部
晓明 开发部
龙龙 研发部
呆呆 研发部
姗姗 行政部
多表连接解题思路,布布扣,bubuko.com
多表连接解题思路
原文:http://blog.csdn.net/u013494310/article/details/21889069