2

私はProductsテーブルを持っています

ProductIdと列_ StatusId_

StatusId1 と 2 (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;

ANSIJOINの使用

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 に答える