使用联接的SQL查询

使用联接的SQL查询,sql,sql-server,Sql,Sql Server,现在我想以 类别代码|类别名称|项目代码|项目名称|旧代码|旧详细信息 所有三个表都有相同的类别代码 我使用了这个查询:- Category Table have: - category code - category name Items table have: - category code - Item Code - Item Name Old Table have : - Category Code - Old code - Old Detail 但是项目表的详细信息正在重复

现在我想以

类别代码|类别名称|项目代码|项目名称|旧代码|旧详细信息

所有三个表都有相同的类别代码

我使用了这个查询:-

Category Table have:

- category code
- category name

Items table have:

- category code
- Item Code
- Item Name

Old Table have :

- Category Code
- Old code
- Old Detail
但是项目表的详细信息正在重复

请尝试使用GROUP BY,同时使用别名以方便使用:

 SELECT dbo.N_items.CategoryCode, dbo.N_items.ItemCode AS [New Code], dbo.N_items.ItemDetail AS [New Detail], dbo.OldMasterTable.OldItemCode AS [Old Code],   dbo.OldMasterTable.OldItemDetails AS [Old Detail]
FROM   dbo.OldMasterTable INNER JOIN  dbo.N_items 
ON dbo.N_items.CategoryCode = dbo.OldMasterTable.CategoryCode

尝试以下解决方案-它不会重复项目表详细信息。只需在加入前先保留项目表即可。希望它能解决你的问题

SELECT C.CategoryCode, 
       I.ItemCode AS [New Code], 
       I.ItemDetail AS [New Detail], 
       O.OldItemCode AS [Old Code], 
       O.OldItemDetails AS [Old Detail]
FROM Category C JOIN
     Items I ON C.CategoryCode=I.CategoryCode JOIN
     OldMasterTable O ON C.CategoryCode=O.CategoryCode
GROUP BY C.CategoryCode, I.ItemCode AS [New Code], 
         I.ItemDetail AS [New Detail], O.OldItemCode AS [Old Code], 
         O.OldItemDetails AS [Old Detail]

使用group by category_Code在您的查询中有一列ItemDetail,但在您展示的设计中没有。这与C、PHP或ASP.Net有什么关系?!应该只有sql server或mysqlNo,这没有帮助,它仍在重复项表的详细信息,我尝试了许多方法,但项表的详细信息仍然存在repeating@Shubhankar:即使按分组后,它如何产生重复的结果。请显示它生成的结果和您需要的结果。不,这没有帮助,它仍在重复项目表的详细信息,
SELECT c.CategoryCode, c.CategoryName, i.ItemCode, i.ItemName, o.OldItemCode, o.OldItemDetails
FROM  Items i 
LEFT JOIN CategoryTable c on i.CategoryCode = c.CategoryCode
LEFT JOIN OldMasterTable o ON i.CategoryCode = o.CategoryCode