首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我使用了inner join,但是在SQL Server2008 R2中使用了"Distinct“和"Group By”,但是记录是重复的,这是为什么?

我使用了inner join,但是在SQL Server2008 R2中使用了"Distinct“和"Group By”,但是记录是重复的,这是为什么?
EN

Stack Overflow用户
提问于 2014-09-04 14:32:37
回答 1查看 21关注 0票数 0

当我运行这个查询时,它给了我重复的记录,但我删除了INNER JOIN planingOrderBookHeader PLOH ON sd.StyleID=PLOH.StyleID和列PLOH.OderBookID,它给出的记录没有重复,但我需要列名为PLOH.OderBookID的记录,我该如何解决这个问题?

代码语言:javascript
复制
SELECT 
       CPO.ID   
      ,CPO.StyleID 
      ,cpo.CustomerPo
      ,PLOH.OderBookID
      ,cpo.Process
      ,CPD.Qty
      ,cpd.RefID
      ,cpd.Uom
      ,UM.MeshType
      ,PRC.Name
      ,STC.NewStyleno
      ,SD.TypeID
      ,itm.Name Part
      ,SD.ColorID
      ,COL.Name Color   
      ,SD.FabricID
      ,FAB.Name Faric
      ,SHD.ItemID
      ,ITD.Name Item
      ,SHD.Image
FROM CustomerPO_Header CPO
   INNER JOIN styleconfirmHeader STC ON STC.StyleID=CPO.StyleID 
   INNER JOIN CustomerPo_Details CPD  ON CPO.ID=CPD.CusPOHeaderID   
   INNER JOIN StyleHeader SHD ON SHD.StyleID=CPO.StyleID
    INNER JOIN StyleDetails SD ON CPO.StyleID=SD.StyleID
    INNER JOIN ItemDetails itm ON SD.TypeID=itm.ID
    INNER JOIN ColorDetails COL ON SD.ColorID=COL.ID
    INNER JOIN ItemFabricDetails FAB ON FAB.ID=SD.FabricID
    INNER JOIN UOM UM ON Um.ID=CPD.Uom
    INNER JOIN ItemTypeDetails ITD ON SHD.ItemID=ITD.ID
    INNER JOIN process PRC ON PRC.ID=CPO.Process
   INNER JOIN planingOrderBookHeader PLOH ON sd.StyleID=PLOH.StyleID 

请帮帮我

EN

回答 1

Stack Overflow用户

发布于 2014-09-04 14:43:41

如果不知道你有什么数据,就很难进行测试。但是,您可以尝试将导致重复的表移到子查询中,而不是转移到联接中。所以就像这样:

代码语言:javascript
复制
SELECT 
   CPO.ID   
  ,CPO.StyleID 
  ,cpo.CustomerPo
  ,(SELECT PLOH.OderBookID FROM planingOrderBookHeader PLOH WHERE sd.StyleID=PLOH.StyleID) AS OderBookID
  ,cpo.Process
  ,CPD.Qty
  ,cpd.RefID
  ,cpd.Uom
  ,UM.MeshType
  ,PRC.Name
  ,STC.NewStyleno
  ,SD.TypeID
  ,itm.Name Part
  ,SD.ColorID
  ,COL.Name Color   
  ,SD.FabricID
  ,FAB.Name Faric
  ,SHD.ItemID
  ,ITD.Name Item
  ,SHD.Image
FROM CustomerPO_Header CPO
INNER JOIN styleconfirmHeader STC ON STC.StyleID=CPO.StyleID 
INNER JOIN CustomerPo_Details CPD  ON CPO.ID=CPD.CusPOHeaderID   
INNER JOIN StyleHeader SHD ON SHD.StyleID=CPO.StyleID
INNER JOIN StyleDetails SD ON CPO.StyleID=SD.StyleID
INNER JOIN ItemDetails itm ON SD.TypeID=itm.ID
INNER JOIN ColorDetails COL ON SD.ColorID=COL.ID
INNER JOIN ItemFabricDetails FAB ON FAB.ID=SD.FabricID
INNER JOIN UOM UM ON Um.ID=CPD.Uom
INNER JOIN ItemTypeDetails ITD ON SHD.ItemID=ITD.ID
INNER JOIN process PRC ON PRC.ID=CPO.Process

当然,这可能会对性能产生影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25658656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档