a 表 合同表 列 合同ID,合同名字
               001      大合同
b表  细表   列 合同ID,服务项目ID
001  1
                001      2
两个表的合同ID是主外键c表   服务项目ID  服务项目名字
       1            保险
       2            公积金我想提取出这样格式  合同名字,服务项目名字
当然是多行的     

解决方案 »

  1.   

    select 合同名字,服务项目名字 
    from a ,b,c 
    where a.合同ID=b.合同ID and b.服务项目ID =c.服务项目ID 
      

  2.   

    select 
      a.合同名字,c.服务项目名字
    from 
      a,b,c
    where 
      a.ID=b.ID 
    and 
      b.服务项目ID=c.服务项目ID
      

  3.   

    SELECT 合同名字,服务项目名字 
    FROM A,B,C WHERE A.合同ID=B.合同ID AND B.服务项目ID=C.服务项目ID
      

  4.   

    select 
      a.合同名字,c.服务项目名字
    from 
      a,b,c
    where 
      a.合同ID=b.合同ID 
    and 
      b.服务项目ID=c.服务项目ID
      

  5.   

    SELECT 合同名字,服务项目名字 
    FROM A LEFT JOIN ON  A.合同ID=B.合同ID  LEFT JOIN C ON  B.服务项目ID=C.服务项目ID?
      

  6.   

    --========+++++++++++++++++++++++++++++++++++==========
    --======= 每天都在进步,却依然追不上地球的自传=========
    --======= By: zc_0101 At:2009-08-18 11:46:39=========
    --========++++++++++++++++++++++++++++++++++++=========
    --> 测试数据: #a
    if object_id('tempdb.dbo.#a') is not null drop table #a
    create table #a (合同ID varchar(3),合同名字 varchar(6))
    insert into #a
    select '001','大合同' union all
    select '002','小合同'
    --> 测试数据: #b
    if object_id('tempdb.dbo.#b') is not null drop table #b
    create table #b (合同ID varchar(3),服务项目ID int)
    insert into #b
    select '001',1 union all
    select '001',2 union all
    select '001',1 union all
    select '002',2  
    --> 测试数据: #c
    if object_id('tempdb.dbo.#c') is not null drop table #c
    create table #c (服务项目ID int,服务项目名字 varchar(6))
    insert into #c
    select 1,'保险' union all
    select 2,'公积金'
     
    ----------------查询------------
    select b.合同ID,a.合同名字,c.服务项目名字 from #b b left join #a a on a.合同ID=b.合同ID inner join #c c on b.服务项目ID=c.服务项目ID----------------结果--------------
    /*
    合同ID 合同名字 服务项目名字
    001 大合同 保险
    001 大合同 公积金
    001 大合同 保险
    002 小合同 公积金
    */