日期:2014-05-18  浏览次数:20437 次

表之间查询问题,有难度,请大家进来看看!
表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