SQL多表关联询问
我有3个表a,b,c,a表字段为name,code,many1;b表字段为name,code,many2,c表字段为name,code,many3
我想要实现如下功能,将三张表合并起来,变成一张表d(name,code,many1,many2,many3),name和code相同的变成一条记录,若没有相同的则使用自己表中的name,code。
比如:
表a:
name code many1
张三 001____56
李四 002____61
表b:
name code many2
张三 001____44
李四 002____30
王五 003____20
表c:
name code many2
张三 001____77
赵六 004____50
组成如下的表d:
name code many1 many2 many3
张三 001____56_____44_____77
李四 002____61_____30_____0
王五 003____20_____0______0
赵六 004____0______0______50
可否用视图之类的做?
[解决办法]
select case when a.name is not null then a.namewhen b.name is not null then b.nameelse c.name end as name,case when a.code is not null then a.codewhen b.code is not null then b.codeelse c.code end as code,isnull(a.many1,0),isnull(b.many2,0),isnull(c.many3,0)from afull join b on a.cid = b.cidfull join c on b.cid = c.cid