我有3个表,即产品,类别和productTocategory
现在我的要求是我要查看存在于多个类别中的产品。
我没有正确形成t-sql。
任何人都可以帮我构建查询,下面是我的表结构。
答案 0 :(得分:2)
您必须聚合多对多联接表。然后,您可以通过多种方式使用它来获取所需的关联产品信息。
例如:
CREATE TABLE Product (ProductId INT, Name VARCHAR(10))
CREATE TABLE Category(CategoryId INT, Name VARCHAR(10))
CREATE TABLE ProductToCategory (ProductToCategoryID INT, CategoryID INT, ProductID INT)
GO
INSERT INTO Product VALUES (1,'prod_1'),(2,'prod_2')
INSERT INTO Category VALUES (1,'cat_1'),(2,'cat_2')
INSERT INTO ProductToCategory VALUES (0,1,1),(1,2,1),(1,1,2)
GO
SELECT p.*
,a.CatCount
FROM Product p
INNER JOIN (
SELECT ProductID
,COUNT(CategoryId) CatCount
FROM ProductToCategory
GROUP BY ProductID
HAVING COUNT(*) > 1
) a ON p.ProductId = a.ProductId
GO
DROP TABLE Product
DROP TABLE Category
DROP TABLE ProductToCategory