2

我有一张Products桌子

ProductIdStatusId

如何选择具有StatusId1 和 2(两行)的所有产品?

4

3 回答 3

7

要选择具有两种状态 (1,2) 的产品:

Sql-Server 小提琴演示

SELECT ProductId 
FROM products
WHERE status IN (1, 2)
GROUP BY ProductId
HAVING COUNT(distinct status) = 2
于 2013-03-12T10:24:33.140 回答
2

尝试此查询以获取同时具有状态 1 和 2 的产品的记录

SELECT DISTINCT a.ProductId 
FROM Products a, Products b 
WHERE a.ProductId = b.ProductId 
  AND a.StatusId = 1 
  AND b.StatusId = 2;

使用 ANSI 连接

SELECT DISTINCT a.ProductId 
FROM Products a INNER JOIN Products b 
ON a.ProductId = b.ProductId 
WHERE a.StatusId = 1 
  AND b.StatusId = 2;

小提琴

于 2013-03-12T10:18:53.207 回答
0
SELECT DISTINCT a.ProductId 
FROM Products a
INNER JOIN Products b ON a.ProductId = b.ProductId
WHERE a.StatusId IN (1, 2)
于 2013-03-12T10:20:57.897 回答