0

製品に関する顧客の選択肢を格納するためのテーブルがあります。

顧客番号、製品番号、および製品に対する「はい」または「いいえ」の感謝を保存します。はい/いいえを保存しているのは、顧客がすべての製品を選択したかどうかを確認できるように、すべての製品を選択する必要があるためです。

Customer | Product | Status
---------------------------
12345    | 1       | 0
12345    | 2       | 1
12345    | 3       | 1
12345    | 4       | 0
12345    | 5       | 1
23456    | 1       | 1
23456    | 2       | 0
23456    | 3       | 1
23456    | 4       | 1
23456    | 5       | 0

私がやりたいのは、どの顧客が特定の製品セットを選択したかを確認することです。それは次のようなものかもしれselect * from choices where product = 1 and product = 3 group by customerませんが、次のように製品を照会する必要もありますstatus = 1

クエリでこれを解決する方法はありますか、またはいくつかの PHP への呼び出しに頼る必要がありますか?

4

2 に答える 2

3
select customer 
from choices 
where status = 1 and product in (1,3)
group by customer
having count(distinct product) = 2
于 2013-09-30T09:45:53.183 に答える
0
SELECT DISTINCT a.customer
FROM choices a, choices b
WHERE a.customer = b.customer
AND a.product = 1
AND b.product = 3;

これを行うと、後でより複雑なロジックを追加することもできます。2012 年に製品 1 を購入し、2013 年に製品 2 を購入したすべての人を取得したい場合は、where 句に追加の条件を追加して、それらをフィルタリングできます。

于 2013-09-30T10:13:48.893 に答える