生成新表如下
编号 名称 管理员 科目 组别 排期
A1 青葵 张三
A2 藤编 刘一 27 13
A3 干花 赵云 GY 25 13
A6 云台 伍德 25 13
A7 笔袋 牛成 KT
A8 竹子 王群 BB
基础表格式
编号 名称 管理员
A1 青葵 张三
A2 藤编 刘一
A3 干花 赵云
A6 云台 伍德
A7 笔袋 牛成
A8 竹子 王群
表1
编号 科目
A8 BB
A5 CC
A3 GY
A7 KT
表2
编号 组别 排期
A3 25 13
A5 36 09
A10 29 06
A9 87 76
A2 27 13
A6 25 13
表N:都有编号字段,其他字段与各表无重复
建议不要左链接,一般多表查询不建议超过3张表,
像你这个问题,你就直接根据编号,去每个表取数据回来就好,然后内存上处理好了新的合并表数据拼接插入SQL就行了,
如果量大,就根据主表一次只处理指定数量的数据,如100条,
表不多的话,直接join就行了,但你这要200个表一起的话,join性能就抗不住了,需要分批join。
比如基表和表1join后得到一个临时表,然后临时表再join表2得到一个新的临时表,就这样一直循环下去。
至于代码编写,用拼接字符串的方式来拼接动态sql执行即可。
取字段的话,用Select name from syscolumns Where ID=OBJECT_ID('表名') and name <>'编号' 作为游标循环拼接字符串。
真有这样200个表去关联的,说明设计有问题。就算是非常复杂的业务,一般超过10个表连接的话,设计思想就不对了。对于任何数据库,都不建议直接关联3个以上的业务表数据。复杂的连接,建议通过临时中间表来处理