有四张表表一 UsrInfo 
表二 UsrAccount
表三 UsrStar
第四 Orders
前三张表有一个共同的字段UserName
第四张表与第二第三张表中有一个共同的字段OrderID怎么实现四张表中的数据联查从第一张表中知道用户是否为注册用户是否认证
第二张表中取得用户经验和帐户余额
第三张表中取得用户当前身份等级
第四张表用户当前申请订但的相关信息请问这样的查询怎么处理
如果要需要删除UsrInfo中的用户数据 那么第二张表第三张表中的数据都相应的删除
应该怎么做
使用del * from table1 where="条件"
del * from table2 where="条件"
del * from table3 where="条件"
象上面那样处理吗
有更好的办法没

解决方案 »

  1.   

    前三张表应该是一对一关系,直接用表连接查询就可
    订单可能是一对多关系
    表一 UsrInfo 
    表二 UsrAccount
    表三 UsrStar
    建立主外键关系,及联删除
      

  2.   


    第一张表中的UserName第二张表中不一定有,第三张表中也不一定有
    第2张表中出现了UserName第三张表中绝对不会出现相同UserName记录
    第3张表中出现了UserName第二张表中绝对不会出现相同UserName记录
      

  3.   

    查询可以用联接查询(inner join)删除可以在程序里用一个事务删除
      

  4.   

    能写点具体点的 SQL 吗?
    谢谢
      

  5.   

    如果要需要删除UsrInfo中的用户数据 那么第二张表第三张表中的数据都相应的删除
    应该怎么做
    使用del * from table1 where="条件"
    del * from table2 where="条件"
    del * from table3 where="条件"
    象上面那样处理吗
    有更好的办法没----------
    你也可以用触发器来实现这样得功能!
      

  6.   

    删除我知道怎么处理了可是这个怎么处理
    有四张表表一 UsrInfo 
    表二 UsrAccount
    表三 UsrStar
    第四 Orders
    前三张表有一个共同的字段UserName
    第四张表与第二第三张表中有一个共同的字段OrderID怎么实现四张表中的数据联查从第一张表中知道用户是否为注册用户是否认证
    第二张表中取得用户经验和帐户余额
    第三张表中取得用户当前身份等级
    第四张表用户当前申请订但的相关信息请问这样的查询怎么处理
      

  7.   

    create table T1 
    (
        Id int,
        Name varchar(10)
    )
    go
    create table T2 
    (
        Id int,
        Name varchar(10)
    )
    go
    insert T1 select 1,'CSETE'
    insert T1 select 2,'CSETE'
    insert T1 select 3,'CSETE'
    go
    insert T2 select 2,'CSETE'
    insert T2 select 3,'CSETE'
    go-----------建立触发器CREATE TRIGGER TEMP_SC on T1
    AFTER delete
    as
      delete T2 from T2 T,deleted d where D.Id=T.id
    delete from T1 where id=2
      

  8.   

    我使用不上触发器,事务是可以考虑的因为我是在ASP或者JSP中使用我可以通过一些控件达到与触发器相同的效果