2016-12-23 5 views
0

ネストされた結合を使用する方法を学習していましたが、現在のデータベースでは機能しないようです。ネストされた結合を使用してselectステートメントを書く方法

私はこれらのテーブルを作成している

enter image description here

私が最初にどのように多くのユーザーが、(彼らは自分のアカウントでいくつかの分を持っている)少なくとも一つの使用状況を作っ2016年に自分のアカウントを作成し、使用しているのを確認したいです2013年 でのiPhone私は、エラーを生成している試みた:あなたは2 WHERE句とUSERを持っているので、期待しているから

SELECT COUNT(user_id) FROM USER 
WHERE usage_count > 0 
AND account_created <= ‘2016-12-31’ 
AND account_created >= ‘2016-01-01’ 
INNER JOIN PRODUCT 
WHERE product = 'iPhone'; 
+0

のようになります 'INNERあなたは' on'の – WillardSolutions

+0

'JOIN'句に参加する列が欠落している------ PRODUCT'を登録しようWHERE''前に行かなければなりません。 – Barmar

+0

あなたのテーブルに 'usage_count'カラムがないので、' usage_count> 0 'は何を参照するのですか? – Barmar

答えて

1

あなたのクエリエラーがキーワードで、識別子として使用すべきではありません。私はバックティックを使用してそれらをエスケープしましたが、あなたの列名として非キー/予約語を使用することをお勧めします。あなたのクエリが

SELECT COUNT(u.user_id) FROM `USER` u 
INNER JOIN USAGE us on us.user_id = u.user_id 
JOIN PRODUCT p ON us.product_id = p.product_id 
WHERE p.product = 'iPhone' 
AND u.usage_count > 0 
AND u.account_created <= '2016-12-31' 
AND u.account_created >= '2016-01-01' 
+0

'USER'はキーワードですが、予約されていないので、エスケープする必要はありません。 – Barmar

+0

あなたは 'user'と' product'をリンクするので、 'usage'テーブルと結合する必要があります。 – Barmar

+0

日付の前後に間違ったタイプの引用符があります(質問からコピーしたためです)。 – Barmar

関連する問題