我有3个表,分别是product, category和productTocategory
现在我的要求是我想检查存在于多个类别中的产品。
我没有得到正确的t-sql格式。
谁能帮我建立查询,下面是我的表结构
- 产品表包含所有生产信息。(ProductId, Name, Description…)
- 类别表包含类别和产品信息(CategoryId, Name等)
- ProductToCategory有产品和类别信息(ProductToCategoryID, CategoryID, ProductID)
必须聚合多对多连接表。然后,您可以以任意数量的方式使用它来获取所需的相关产品信息。
例如: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