我有在三个表:A,B,CA表:
aid    字段2   字段3   状态
 1      xx     xxx      0
 2      xx     xxx      0
 3      xx     xx       1
 4      xx     xxx      0
 5      xx     xxx      1
....B表:
bid    字段2   字段3   
 1      xx     xxx      
 1      xx     xxx      
 1      xx     xx       
 2      xx     xxx      
 4      xx     xxx      
....
C表:
cid    字段2   字段3   
 1      xx     xxx      
 3      xx     xxx      
 3      xx     xx       
 2      xx     xxx      
 5      xx     xxx      
....select * from A inner join B on A.aid=B.bid inner join C on A.aid=C.cid where A.状态='0'问题1.这样我取出来的数据是没有用的,但是我又不想删除,所以我想把他们转移到其它表,我是建一个表存放这些数据呢,还是建立多个表?其实我只要是转移B,C两表我不想要的数据.问题2:(这个是我求大家帮忙的.)这条SQL语句应该怎么样写?

解决方案 »

  1.   

    是不是想把所有A表里状态为0的数据,从B,C表里转移到D表?
      

  2.   

    我是直接在数据库里操作,不知道这个SQL语句应该怎么写.
      

  3.   

    分开写容易点,写成存储过程!
    先用你那句查询到状态为0的ID,然后将BC中的数据删除,再移到其他表中
      

  4.   

    1.一个表就够了,为什么要多个呢?
    2.select * from A inner join B on A.aid=B.bid inner join C on A.aid=C.cid where A.状态='0' into newTable
      

  5.   

    delete from B,C where B.bid and C.cid in (select * from A join B on A.aid=B.bid join C on A.aid=C.cid where A.状态='0' into #temp)
      

  6.   

    select * from A inner join B on A.aid=B.bid inner join C on A.aid=C.cid where A.状态='0' into newTabledelete from B,C where B.bid and C.cid in (select * from A join B on A.aid=B.bid join C on A.aid=C.cid where A.状态='0' into #temp)以上两种方法为什么说into 附近有语法错误?
      

  7.   

    ================================================
    select * from A inner join B on A.aid=B.bid inner join C on A.aid=C.cid where A.状态='0' into newTabledelete from B,C where B.bid and C.cid in (select * from A join B on A.aid=B.bid join C on A.aid=C.cid where A.状态='0' into #temp)以上两种方法为什么说into 附近有语法错误?
      

  8.   

    另这个朋友的SQL语句不正确.delete from B,C where B.bid and C.cid in (select * from A join B on A.aid=B.bid join C on A.aid=C.cid where A.状态='0' into #temp)