没看懂楼主的需求,到底是要UPDATE表还是查询。 如果是UPDATE,则建议在程序中去实现。

解决方案 »

  1.   

    是要查询A表的记录;   但A表的记录要满足条件;  1:因为A跟B是相关联的又是一对多的; B跟C也是相关联的也是一对多的;B表中有的记录C表中都要出现;
      

  2.   

    如果我只到B时可以这么写SELECT * FROM A as a,B as b where a.AID=B.AID and (select count(*) from B where AID=a.AID)>0但是我现在要到达C表:
      

  3.   

    如果我要到达C时  首先A对B是一对多的关系;所以SQL语句要有一个FOR循环;判断出每条记录在C都满足有记录时;才显示出A的这条记录
      

  4.   

      建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
      

  5.   

    表A:CREATE TABLE [dbo].[A](
    [AID] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
     CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED 
    (
    [AID] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]表B:CREATE TABLE [dbo].[B](
    [BID] [int] IDENTITY(1,1) NOT NULL,
    [AID] [int] NOT NULL,
    [Address] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
     CONSTRAINT [PK_B] PRIMARY KEY CLUSTERED 
    (
    [BID] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]表C:CREATE TABLE [dbo].[C](
    [CID] [int] IDENTITY(1,1) NOT NULL,
    [BID] [int] NOT NULL,
    [SpotName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
     CONSTRAINT [PK_C] PRIMARY KEY CLUSTERED 
    (
    [CID] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
    INSERT INTO [A]
               ([Name])
         VALUES
               ('第一条');
    INSERT INTO [A]
               ([Name])
         VALUES
               ('第二条');
    INSERT INTO [A]
               ([Name])
         VALUES
               ('第三条');INSERT INTO [B]([AID],[Address])VALUES(1'222');
    INSERT INTO [B]([AID],[Address])VALUES(1'2S2SDF2');
    INSERT INTO [B]([AID],[Address])VALUES(2'RR2SS22');
    INSERT INTO [B]([AID],[Address])VALUES(3'AAA222');
    INSERT INTO [B]([AID],[Address])VALUES(3'GGG222');
    INSERT INTO [B]([AID],[Address])VALUES(3'YYY222');INSERT INTO [C]([BID],[SpotName])VALUES(1,'SFSDF');
    INSERT INTO [C]([BID],[SpotName])VALUES(4,'EFES');
    INSERT INTO [C]([BID],[SpotName])VALUES(4,'FSDFSDF');
    INSERT INTO [C]([BID],[SpotName])VALUES(5,'FSDFSDF');
    INSERT INTO [C]([BID],[SpotName])VALUES(6,'SDFFESDF');得到的A表的记录只有AID为3符合要求;
    因为它在B中有三条记录;而且这三条记录分别在C表中也有记录;
    AID为2虽然在B中有记录 ,但这条记录在C中没有,所以不符合要求;
    AID为1虽然在B中有两条记录,但只有其中一条记录在C表中有记录,所以也不答合要求;本来是要写MYSQL 家里的MYSQL打不开了  所以就直接用MSSQL  语句应该都一样吧
      

  6.   

    select a.*
    from a,b,c
    where a.aid=b.aid and b.bid=c.bid