表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
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
排除C表中AId=1的数据查询结果表
AId AName BId BName
1 aa 3 cc
排除表C中Bid=1,Bid=2的数据
得出结果为
AId AName BId BName
1 aa 3 cc
排除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
*/
排除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
)起到一个什么作用?
排除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个结果集合并成一条数据