这是你数据库设计上的毛病,你既然用三张表来保存一个人的资料,
比如表1是基本资料表(姓名、年龄等),表2是职务表(任职时间,职务等),表3是家属资料表(称呼,工作单位等)。这里的一些信息可以没有,但你这三张表应该有一个共同的字段('编号'),而且三张表的字段('编号')的值应该相等,如此做的话,就可以用你的Sql语句将记录取出来.
这种情况下,不要只想怎么写语句,适当考虑一下数据库的问题!

解决方案 »

  1.   

    在SQL Server中可以这样:
    SELECT A.个人编号,A.姓名,A.年龄,
           职务=(SELECT 职务 FROM B WHERE B.个人编号=A.个人编号),
           家属称呼=(SELECT 称呼 FROM C WHERE C.个人编号=A.个人编号)
     FROM A 
      

  2.   

    建议:在建表中加入相关字段,检测其它表相关记录内容的情况:如有相关记录(如:boolean),则在某一字段中标志.这样就可以达到你的应用目的!
      

  3.   

    用外连接:
    select t1.*,t2.*,t3.* 
    from t1,t2,t3 
    where t1.个人编号='12345' and t1.个人编号*=t2.个人编号 and t1.个人编号*=t3.个人编号
      

  4.   

    Select A.***,A.***,A.***,B.***,B.****,C.****,C.****
    From A Left Join B on A.个人编号=B.个人编号
           Left Join C on A.个人编号=C.个人编号
    Where A.个人编号='12345'一切OK,是吧!!!!
      

  5.   

    V_Lucky(Lucky) 
    与我讲的是同一道理,
    只不过是外连接的不同表达方式!
    你只要能保证“个人编号”的唯一性就可以放心使用!
      

  6.   

    据我分析,表1和表2是1对1的关系,这好办,按genphone_ru(票票)的方法,但表1和表3是1对多的关系,最好加一个数据集控件,用主从表来实现。
    关注
      

  7.   

    这是你数据库设计上的毛病,你既然用三张表来保存一个人的资料,
    比如表1是基本资料表(姓名、年龄等),表2是职务表(任职时间,职务等),表3是家属资料表(称呼,工作单位等)。这里的一些信息可以没有,但你这三张表应该有一个共同的字段('编号'),而且三张表的字段('编号')的值应该相等,如此做的话,就可以用你的Sql语句将记录取出来.
    这种情况下,不要只想怎么写语句,适当考虑一下数据库的问题!  
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      

  8.   

    “我有三张表,每张表都有一个字段“个人编号””
    -----是每张表都有一个“个人编号”的字段啊。不过就是说表1有12345这个编号的记录,但表2、表3是有可能没有这个记录的,也可能有,而且表3还可能有好几条关于12345这个人的记录(家属当然有好几个了)。
    liang_z(千山一刀之忍者神龟)的办法可以一试,当然是用在唯一记录的表中;
    计算字段的办法也可以的,不过要是字段多了也麻烦些;
    V_Lucky(Lucky) 的我没用过,不过也要去试试,先谢谢各位大虾米了!
    明天我来结帖。
      

  9.   

    to:yaoyaozhang(瑶瑶)
      给分这么难吗?
      用这种方法  SELECT 
        pName=tab1.Name,--取第一张表的姓名
        pHeadShip=(SELECT tab2.HeadShip FROM TABLE2 tab2 WHERE tab2.Name=tabl.Name),
           --根据第一张表的姓名,从第二张表取出职务信息,没有这个人,职务为空
           --这可以解决uion视图无法查询的问题。
        pTitle=(SELECT tab3.Title FROM TABLE3 tab3 WHERE tab3.name=tab1.Name)
           --取出称呼。其它部分以此类推。  FROM
        TABLE1 tab1解决了吗?
      

  10.   

    嘻嘻,谢谢楼上的大哥,我是在说csdn上结帐给分给不了的事,嘻嘻,:)
    另外我用的是paradox的数据库,不是sqlserver。
      

  11.   

    为什么不用ado!不会存在这样的问题!