1

注文できる製品のテーブルがあります。

╔═════════╦═════════╗
║ ORDERID ║ INSTORE ║
╠═════════╬═════════╣
║       1 ║       0 ║
║       1 ║       1 ║
║       1 ║       1 ║
║       1 ║       1 ║
║       1 ║       0 ║
║       2 ║       1 ║
║       2 ║       1 ║
║       2 ║       1 ║
╚═════════╩═════════╝

ここで、orderid2 のように、instore all の値が 1 のすべての注文を取得する必要があります。これはどのように可能ですか?

望ましい結果

╔═════════╗
║ ORDERID ║
╠═════════╣
║       2 ║
╚═════════╝
4

4 に答える 4

1
SELECT  orderID
FROM    tableName
GROUP   BY orderID
HAVING  COUNT(*) = SUM(instore = 1)
于 2013-02-01T15:37:05.197 に答える
0

あなたの質問を完全に理解しているかどうかはわかりませんが、

select * from products where instore=1 and orderid=2;
于 2013-02-01T15:39:25.113 に答える
0
SELECT DISTINCT (

OrderID ) FROM products WHERE Instore =1 AND OrderID NOT IN (

SELECT OrderID FROM products WHERE Instore=0 )

于 2013-02-05T13:34:03.973 に答える
0
SELECT * FROM products p WHERE not exists (select 1 from products where orderid = p.orderid and instore != 1 limit 1)
于 2013-02-01T15:37:58.707 に答える