AID Acontent
1 Acontent1
2 Acontent2
3 Acontent3
BID Bcontent
1 Bcontent11
1 Bcontent22
1 Bcontent33
2 Bcontent21
2 Bcontent22
2 Bcontent23
3 Bcontent31
3 Bcontent32
3 Bcontent33
比如我要查询一条A表的记录,select * from A where A.ID = 1 。这里得到ID为1的记录。但同时在这条记录里边添加一个另名BIDCount,统计A.ID在B表中B.ID个数。数。
11 个解决方案
#1
A.AID为1在B中有1 Bcontent11
1 Bcontent22
1 Bcontent33
三个数。
1 Bcontent22
1 Bcontent33
三个数。
#2
SELECT AID,Acontent,COUNT(*)AS CNT FROM A INNER JOIN B WHERE A.AID=B.BID AND A.AID=1
#3
#4
--1.两表关联
select a.aid , b.Bcontent from a , b where a.aid = b.bid and a.aid = 1
--2.你不如直接查询B表。
select b.* from b where bid = 1
#5
--1.两表关联
select a.aid , b.Bcontent from a , b where a.aid = b.bid and a.aid = 1
--2.你不如直接查询B表。
select b.* from b where bid = 1
--3.如果是求数量
select a.* , (select count(1) from b where b.bid = a.aid) [数量] from a
#6
但查出来,只要一条记录……
#7
AID Acontent
1 Acontent1
2 Acontent2
3 Acontent3
BID Bcontent
1 Bcontent11
1 Bcontent22
1 Bcontent33
2 Bcontent21
2 Bcontent22
2 Bcontent23
3 Bcontent31
3 Bcontent32
3 Bcontent33
只要一条记录,例如:
AID AContent Bid_Count
1 Acontent1 3
是一条记录,好你以上方法查的话,N条记录的。
1 Acontent1
2 Acontent2
3 Acontent3
BID Bcontent
1 Bcontent11
1 Bcontent22
1 Bcontent33
2 Bcontent21
2 Bcontent22
2 Bcontent23
3 Bcontent31
3 Bcontent32
3 Bcontent33
只要一条记录,例如:
AID AContent Bid_Count
1 Acontent1 3
是一条记录,好你以上方法查的话,N条记录的。
#8
declare @a table(AID int ,Acontent varchar(10))
insert @a select 1, 'Acontent1'
insert @a select 2, 'Acontent2'
insert @a select 3, 'Acontent3'
declare @b table(BID int ,Bcontent varchar(10))
insert @b select 1, 'Bcontent11'
insert @b select 1, 'Bcontent22'
insert @b select 1, 'Bcontent33'
insert @b select 2, 'Bcontent21'
insert @b select 2, 'Bcontent22'
insert @b select 2, 'Bcontent23'
insert @b select 3, 'Bcontent31'
insert @b select 3, 'Bcontent32'
insert @b select 3, 'Bcontent33'
select *,BIDCount=(select count(1) from @b where aid=bid) from @a where aid=1
AID Acontent BIDCount
----------- ---------- -----------
1 Acontent1 3
(1 行受影响)
#9
支持8樓,其實也可用top 1
#10
多谢!!!
强啊。嵌套Select语句,竟然忘记了!!!
#11
多谢这位朋友,明天加分感谢!
现在刚发帖加不了分。
现在刚发帖加不了分。
#1
A.AID为1在B中有1 Bcontent11
1 Bcontent22
1 Bcontent33
三个数。
1 Bcontent22
1 Bcontent33
三个数。
#2
SELECT AID,Acontent,COUNT(*)AS CNT FROM A INNER JOIN B WHERE A.AID=B.BID AND A.AID=1
#3
#4
--1.两表关联
select a.aid , b.Bcontent from a , b where a.aid = b.bid and a.aid = 1
--2.你不如直接查询B表。
select b.* from b where bid = 1
#5
--1.两表关联
select a.aid , b.Bcontent from a , b where a.aid = b.bid and a.aid = 1
--2.你不如直接查询B表。
select b.* from b where bid = 1
--3.如果是求数量
select a.* , (select count(1) from b where b.bid = a.aid) [数量] from a
#6
但查出来,只要一条记录……
#7
AID Acontent
1 Acontent1
2 Acontent2
3 Acontent3
BID Bcontent
1 Bcontent11
1 Bcontent22
1 Bcontent33
2 Bcontent21
2 Bcontent22
2 Bcontent23
3 Bcontent31
3 Bcontent32
3 Bcontent33
只要一条记录,例如:
AID AContent Bid_Count
1 Acontent1 3
是一条记录,好你以上方法查的话,N条记录的。
1 Acontent1
2 Acontent2
3 Acontent3
BID Bcontent
1 Bcontent11
1 Bcontent22
1 Bcontent33
2 Bcontent21
2 Bcontent22
2 Bcontent23
3 Bcontent31
3 Bcontent32
3 Bcontent33
只要一条记录,例如:
AID AContent Bid_Count
1 Acontent1 3
是一条记录,好你以上方法查的话,N条记录的。
#8
declare @a table(AID int ,Acontent varchar(10))
insert @a select 1, 'Acontent1'
insert @a select 2, 'Acontent2'
insert @a select 3, 'Acontent3'
declare @b table(BID int ,Bcontent varchar(10))
insert @b select 1, 'Bcontent11'
insert @b select 1, 'Bcontent22'
insert @b select 1, 'Bcontent33'
insert @b select 2, 'Bcontent21'
insert @b select 2, 'Bcontent22'
insert @b select 2, 'Bcontent23'
insert @b select 3, 'Bcontent31'
insert @b select 3, 'Bcontent32'
insert @b select 3, 'Bcontent33'
select *,BIDCount=(select count(1) from @b where aid=bid) from @a where aid=1
AID Acontent BIDCount
----------- ---------- -----------
1 Acontent1 3
(1 行受影响)
#9
支持8樓,其實也可用top 1
#10
多谢!!!
强啊。嵌套Select语句,竟然忘记了!!!
#11
多谢这位朋友,明天加分感谢!
现在刚发帖加不了分。
现在刚发帖加不了分。