我有簡單許多一對多表PRODUCT_CATEGORY關係(MSSQL 2008 R2):SQL獲得行在「= ALL」風格
CREATE TABLE #Product_Category (ProductId int, CategoryId int);
go
INSERT INTO #Product_Category (ProductId, CategoryId)
VALUES (1, 200);
go
INSERT INTO #Product_Category (ProductId, CategoryId)
VALUES (2, 200);
go
INSERT INTO #Product_Category (ProductId, CategoryId)
VALUES (2, 400);
go
INSERT INTO #Product_Category (ProductId, CategoryId)
VALUES (3, 300);
go
INSERT INTO #Product_Category (ProductId, CategoryId)
VALUES (2, 300);
go
DROP TABLE #Product_Category
如何選擇產品編號與條件:類別ID = 200 和 CategoryId = 300 and CategoryId = 400?
查詢示例(SQL下面不工作):
SELECT ProductId FROM #Product_Category
WHERE CategoryId = ALL (select 200 union select 300 union select 400)
我期待的結果:產品編號= 2
查詢值:1,2,2,3,2 – 2013-03-02 05:28:54
我正在啓動一臺服務器以進行測試 – 2013-03-02 05:30:24
@Alexander:已發佈解決方案。即使更醜陋,但它的工作原理。現在我將看到如何用更現代的語法來表達它。 – 2013-03-02 05:42:11