表之间查询问题,有难度,请大家进来看看!
表1:
姓名 年龄
张三 20
李里 23
王五 13
马六 18
.....
表2:
姓名 配偶
张三 李四
李四 张三
王五 (空)
(空) 马六
.....
现在要做以下操作,如果表2中:
姓名 配偶
张三 李四
李四 张三
是这样的一个结构,就是姓名和配偶都对应有名字,就到表1中去查询出张三和李四的年龄总和
我用的语句是:
select a.姓名,a.配偶, b.年龄+c.年龄 as 年龄总和 from 表2 a
left join 表1 b on a.姓名=b.姓名
left join 表1 c on a.配偶=c.姓名
where 姓名 is not null and 配偶 is not null
但是查出来的结果为:
姓名 配偶 年龄总和
张三 李四 43
李四 张三 43
有重复了,上面的那个SQL 语句 怎么写,输出才不会有重复,请 高手指点!在线等,谢谢了!~~
[解决办法]
select a.姓名,a.配偶, b.年龄+c.年龄 as 年龄总和 from 表2 a
left join 表1 b on a.姓名=b.姓名
left join 表1 c on a.配偶=c.姓名
where a.姓名> a.配偶 and a.姓名 is not null and a.配偶 is not null