首页 > 解决方案 > 如何使用 GROUP BY 从 SQL 中的 3 个表中选择数据?

问题描述

我很困惑从三个表中选择确切的数据。需要选择的数据超过200k条记录。我有

表 1:标题

  No.    Code
  -------------
  1      AAA
  2      BBB
  3      CCC
  4      DDD

表 2:详细信息

  No.    I-Code
 ---------------
  1      123
  1      122
  1      111
  2      222
  2      212
  3      333
  3      341

表 3: 库存

 I-code  Code
 ------------
  123     AAA
  122     ACC
  111     ACE
  222     BAA
  212     BVC
  333     DVC
  341     CVD

我想从表 3中选择I-CodeCode以及表 1中的Code表 2中的No分组。这可能吗?我尝试了很多方法,这让我越来越困惑。

我尝试过的查询之一是

SELECT 
    inventory.I-code, inventory.Code,header.Code
FROM 
    inventory
INNER JOIN
    Detail ON inventory.I-code = Detail.I-code
INNER JOIN
    header ON header.No =Detail.No

它给了我数据,但没有重复。我也尝试将 No 分组。

预期输出。

No[from tbl 1]   I-code[from tbl 3]   Code[from tbl 3]{GROUPBY} Code[frm tbl 1]
   1                     123                   AAA                AAA
   1                     122                   ACC                AAA  
   1                     111                   ACE                AAA
   2                     222                   BAA                BBB
   3                     341                   CVD                CCC

请帮忙。

提前致谢。

标签: sqlsql-serverjoin

解决方案


您可以使用另一个查询来获得相同的结果

  with t as (select   H.no, H.code,d.[I-code] from 
  Header H inner join Detail D on  H.no= D.no) 

  select  t.NO as [No from tbl 1]  ,i.[I-code] as  [I-code from tbl 3],i.code as  [Code 
 from tbl 3], t.code as [Code frm tbl 1] from Inventory I inner join t on i.code=t.code

推荐阅读