假如有表A:
id name k1 k2 k3
1 a 1 10 51
2 b 2 11 53
3 c 3 12 54表B:
id name
1 dd
2 ee
3 ff
10 gg
11 hh
12 ii
51 jj
53 kk
54 ll我想通过SQL语句获得这种结果:
1 a dd gg jj
2 b ee hh kk
3 c ff ii ll我知道我设计的表有问题,但我是为了优化查询才这么设计的。之前居然没考虑到把索引换成字符串可能会是很麻烦的。如果没有比较高效的方法获得我要的结果的话,可能就要重新设计表了。
再详细说明一下,那个B表存储的其实是个树,还有一个表示父节点的属性parent我感觉没有助于表达问题我就没写出来。k1,k2,k3合起来表示的是一个三级的分类。
(select name from 表B: where id=a.k1),
(select name from 表B: where id=a.k2),
(select name from 表B: where id=a.k3)
from a