表A
AId   AName
1      aa
2      bb
3      cc表B
BId   BName
1     aa
2     bb
3     cc表C
AId   BId
1      1
1      2我想通过表C 条件为AId,排除Aid为1的剩下的表B的信息,求Sql大神们指教谢谢!  查询结果表
AId  AName BId  BName   
  1  aa     3    cc
Sql

解决方案 »

  1.   

    看不懂这句 我想通过表C 条件为AId,排除Aid为1的剩下的表B的信息
      

  2.   


    排除C表中AId=1的数据查询结果表
    AId  AName BId  BName   
      1  aa     3    cc
      

  3.   

    select AId  AName BId  BName   from A,B,C where A.AId=C.AId and C.BId=B.BId and C.AId<>1
      

  4.   


    排除表C中Bid=1,Bid=2的数据
    得出结果为
    AId  AName BId  BName   
      1  aa     3    cc
      

  5.   


    排除C表中AId=1的数据查询结果表
    AId  AName BId  BName   
      1  aa     3    cc是这样吗:create table a(AId int,AName varchar(10))insert into a
    select 1,      'aa' union all
    select 2,      'bb' union all
    select 3,      'cc'
    create table B(BId  int,BName varchar(10))insert into b
    select 1     ,'aa' union all
    select 2     ,'bb' union all
    select 3     ,'cc'
    create table C(AId  int,BId int)insert into c
    select 1,1 union all
    select 1,2select *
    from
    (
    select *
    from a
    where a.aid = 1
    )a
    cross join
    (
    select b.*
    from b
    where b.bid not in (select bid from c where aid = 1)
    )b
    /*
    AId AName BId BName
    1 aa     3 cc
    */
      

  6.   


    排除C表中AId=1的数据查询结果表
    AId  AName BId  BName   
      1  aa     3    cc是这样吗:create table a(AId int,AName varchar(10))insert into a
    select 1,      'aa' union all
    select 2,      'bb' union all
    select 3,      'cc'
    create table B(BId  int,BName varchar(10))insert into b
    select 1     ,'aa' union all
    select 2     ,'bb' union all
    select 3     ,'cc'
    create table C(AId  int,BId int)insert into c
    select 1,1 union all
    select 1,2select *
    from
    (
    select *
    from a
    where a.aid = 1
    )a
    cross join
    (
    select b.*
    from b
    where b.bid not in (select bid from c where aid = 1)
    )b
    /*
    AId AName BId BName
    1 aa     3 cc
    */
    你好:语句中(
    select *
    from a
    where a.aid = 1
    )起到一个什么作用?
      

  7.   


    排除C表中AId=1的数据查询结果表
    AId  AName BId  BName   
      1  aa     3    cc是这样吗:create table a(AId int,AName varchar(10))insert into a
    select 1,      'aa' union all
    select 2,      'bb' union all
    select 3,      'cc'
    create table B(BId  int,BName varchar(10))insert into b
    select 1     ,'aa' union all
    select 2     ,'bb' union all
    select 3     ,'cc'
    create table C(AId  int,BId int)insert into c
    select 1,1 union all
    select 1,2select *
    from
    (
    select *
    from a
    where a.aid = 1
    )a
    cross join
    (
    select b.*
    from b
    where b.bid not in (select bid from c where aid = 1)
    )b
    /*
    AId AName BId BName
    1 aa     3 cc
    */
    你好:语句中(
    select *
    from a
    where a.aid = 1
    )起到一个什么作用?其实也没什么作用,因为看到你要的结果中,你是需要a表中的aid=1的值,因为这个aid = 1的值,和后面的bid值,之间没有关系,所以后面还用了一个cross join,这样就不需要关联条件了。然后后面的b表,过滤了aid=1的bid,然后2个结果集合并成一条数据