首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

表之间查询有关问题,有难度,请大家进来看看

2012-01-26 
表之间查询问题,有难度,请大家进来看看!表1:姓名年龄张三20李里23王五13马六18.....表2:姓名配偶张三李四

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

热点排行