2016-12-23 58 views
0

我一直在學習如何使用嵌套連接,但似乎無法讓它們適用於當前數據庫。如何使用嵌套連接編寫select語句

我已經創建了這些表: enter image description here

我想先了解有多少用戶已經由至少一個使用(他們有他們的帳戶若干分鐘),創建自己的帳戶在2016年,和使用iPhone在2013年 我已經試過這是產生錯誤:

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 JOIN PRODUCT' ------你缺少的列加入'ON' – WillardSolutions

+0

'JOIN'條款面前'WHERE'去。 – Barmar

+0

你的表中沒有'usage_count'列,那麼'usage_count> 0'應該指什麼? – Barmar

回答

1

您所查詢的錯誤出這是意料之中的,因爲你有兩個WHERE條款和USER是關鍵的字,不應該被用來作爲標識。我已經使用backtique逃脫了他們,更好地使用非鍵/保留字作爲您的列名。您的查詢應該像

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

您需要加入'usage'表,因爲這是'user'和'product'的鏈接。 – Barmar

+0

你在日期周圍有錯誤的引號類型(因爲你從問題中複製了它們)。 – Barmar