使用しているテーブルの例が2つあります。出力を使用して配列を構築しているため、出力は単一の列である必要があります。
最初の表は製品のリストです
PRODUCT ID PRODUCT_NAME
01 product1
02 product2
03 product3
04 product4
05 product5
06 product6
07 product7
08 product8
09 product9
10 product10
11 product11
12 product12
表2は購入のリストです
SALESID PRODUCT_NAME USERID DATE
01 product1 001ABC 11-10-2012
02 product5 001ABC 11-11-2012
03 product1 002XYZ 11-11-2012
04 product12 001ABC 11-13-2012
05 product7 001ABC 11-13-2012
06 product3 002XYZ 11-14-2012
07 product11 002XYZ 11-14-2012
ここで必要なのは、001ABCのようなUSERIDを指定する場合、USERIDが指定したものと一致し、(自動的に)製品テーブルに表示され、0を表示する必要がある場合は出力を1にする必要があります。製品テーブルに表示されるだけです
したがって、上記の2つのテーブルとこれらの2つのUSERIDの2つの例は、次のようになります。
USERID001ABCが提供する利回り
OUTPUT
1
0
0
0
1
0
1
0
0
0
0
1
USERID002XYZが提供する
OUTPUT
1
0
1
0
0
0
0
0
0
0
1
0
CASEステートメントの使用が失敗したか、正しい構文が得られませんでしたPHPとMYSQLを使用しています
現在のクエリは、単一のUSERIDがある限り正常に機能しましたが、userIDでフィルタリングしようとすると失敗しました。
PHP / MYSQLクエリ:
SELECT (PURCHASES.PRODUCT_NAME IS NOT NULL) AS purchased
FROM PRODUCTS
LEFT JOIN PURCHASES
ON PRODUCT_NAME = PRODUCT_NAME ORDER BY 1
何が間違っているのかわかりません。
2回購入して別のユーザーを追加すると、結果は出力にさらに2行追加されたように見えたため、出力には、表示した例のように元の12行ではなく14行が含まれていました。
製品名で識別される購入テーブルで一致が見つかった場合を除いて、各行がゼロに設定された製品の合計量に等しいレコードの合計量で単一列の出力を取得するにはどうすればよいですか?出力。