【问题标题】: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'
        

        内连接条件最好。

        【讨论】:

          猜你喜欢
          • 2019-08-09
          • 1970-01-01
          • 1970-01-01
          • 2020-10-02
          • 2011-01-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-04
          相关资源
          最近更新 更多