2016-12-27 14 views
0

私はCUSTNUM、PRODNUM、DATE、QTYという列からなるOrdersというテーブルを持っています。INTERSECT in MYSQLコーディングが動作しない

私は両方の製品3737および製品9193(特定値)を注文した顧客を取得しようとしています

だから私はいない成功を収めて次のコードを試してみました。さらに、この上も読んだ後

SELECT CUSTNUM 
FROM ORDERS 
WHERE PRODNUM = 9193 

INTERSECT 

(SELECT CUSTNUM 
FROM ORDERS 
WHERE PRODNUM = 3737); 

をフォーラムでは、私もこれを試しました:

INTERSECT演算子は、教科書には含まれていますが、動作していないようです。

私もINTERSECT in MySQL

+0

"だから私はノー成功を収めて、次のコードを試してみました"。何が起こっているかについては、あまり具体的ではありません。製品のうち1つだけを購入した顧客が増えていますか?あなたは完全に無関係の顧客を得ていますか?クエリは数週間実行されますか?あなたは記憶の問題を抱えていますか? *何が起こるかを常に教えてください。あなたのケースでは、 'INTERSECT'がMySQLに存在しないことを示すエラーメッセージを受け取るべきです。そのようなエラーメッセージが表示されたら、あなたの質問は何ですか? –

+0

はい、私はINTERSECTがコードの最初の部分に存在しないことになっています..したがって何らかの理由で何らかの結果を出さない秒を試しています –

答えて

1

に相談してきたMySQLはなく、MINUS/EXCEPTとINTERSECT [ALL] UNIONをサポートしています。

select custnum    
from  orders  
where  prodnum in (3737,9193)  
group by custnum  
having count(distinct prodnum) = 2 

または

select custnum    
from  orders  
where  prodnum in (3737,9193)  
group by custnum  
having min(prodnum) = 3737 
     and max(prodnum) = 9193 
+0

あなたの返事をありがとう、しかし私はカウントの引数を持っていることを理解できません –

+0

親権者には1つだけのプロドゥンがあり、カウント(別個のプロブン)は1になります。それ以外の場合は2になります –

関連する問題