使用联接的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