【问题标题】:how to get the value from three tables如何从三个表中获取值
【发布时间】:2013-10-10 07:49:55
【问题描述】:
我有 3 张桌子。喜欢:B001,B002,B003。
每个表都有Entrynumber 列。
所以我必须找到Entrynumber 值是否存在于所有 3 个表中。
就像我们为一张桌子写的:
select count(*) from B001 Where Entrynumber ='3340'
我想知道加入表格的最佳方式是什么。
【问题讨论】:
标签:
sql-server
sql-server-2008
join
【解决方案1】:
使用内部连接
select count(*)
from B001 b1
inner join B002 b2 on b1.Entrynumber = b2.Entrynumber
inner join B003 b3 on b1.Entrynumber = b3.Entrynumber
Where b1.Entrynumber ='3340'
获取所有表中存在Entrynumber的记录数。
【解决方案2】:
在所有表中查找值
select
(select count(*) from b001 where EntryNumber = '3340') b1Count,
(select count(*) from b002 where EntryNumber = '3340') b2Count,
(select count(*) from b003 where EntryNumber = '3340') b3Count
【解决方案3】:
SELECT COUNT(*) FROM B001
INNER JOIN B002 ON (B001.Entrynumber = B002.Entrynumber AND B002.Entrynumber = '3340')
INNER JOIN B003 ON (B001.Entrynumber = B003.Entrynumber AND B003.Entrynumber = '3340')
WHERE B001.Entrynumber = '3340'
内连接条件最好。