a1 a2 a3
张三 李四 王五
张三 王五 李四
张三 赵六 王五
赵六 李四 王五
需要在三个字段中,合并查询出结果是:
张三
李四
王五
赵六
8 个解决方案
#1
select distinct a1 from tb
union
select distinct a2 from tb
union
select distinct a3 from tb
union
select distinct a2 from tb
union
select distinct a3 from tb
#2
把楼上的给简化一下:
select a1 from tb
union
select a2 from tb
union
select a3 from tb
#3
挺
![mysql单表怎么合并多列多行数据 mysql单表怎么合并多列多行数据](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBeEwyWmhZMlV2TVRNdVoybG0%3D.jpg?w=700&webp=1)
#4
select a1 from tb
union
select a2 from tb
union
select a3 from tb
union
select a2 from tb
union
select a3 from tb
#5
select distinct a
from
(
select a1 as a from tb
union
select a2 as a from tb
union
select a3 as a from tb
) t
from
(
select a1 as a from tb
union
select a2 as a from tb
union
select a3 as a from tb
) t
#6
distinct效率是比较差的。
#7
union已经是去除掉重复的数据了
#8
![mysql单表怎么合并多列多行数据 mysql单表怎么合并多列多行数据](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBeEwyWmhZMlV2TWpjdVoybG0%3D.jpg?w=700&webp=1)
谢谢.
#1
select distinct a1 from tb
union
select distinct a2 from tb
union
select distinct a3 from tb
union
select distinct a2 from tb
union
select distinct a3 from tb
#2
把楼上的给简化一下:
select a1 from tb
union
select a2 from tb
union
select a3 from tb
#3
挺
![mysql单表怎么合并多列多行数据 mysql单表怎么合并多列多行数据](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBeEwyWmhZMlV2TVRNdVoybG0%3D.jpg?w=700&webp=1)
#4
select a1 from tb
union
select a2 from tb
union
select a3 from tb
union
select a2 from tb
union
select a3 from tb
#5
select distinct a
from
(
select a1 as a from tb
union
select a2 as a from tb
union
select a3 as a from tb
) t
from
(
select a1 as a from tb
union
select a2 as a from tb
union
select a3 as a from tb
) t
#6
distinct效率是比较差的。
#7
union已经是去除掉重复的数据了
#8
![mysql单表怎么合并多列多行数据 mysql单表怎么合并多列多行数据](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBeEwyWmhZMlV2TWpjdVoybG0%3D.jpg?w=700&webp=1)
谢谢.