Błąd zapytania, który jest oczekiwany, ponieważ masz dwa WHERE
klauzula i USER
jest słowem kluczowym i nie powinno być używane jako identyfikator. Uciekłem im, używając backtique, lepiej użyj słowa bez klucza / rezerwy jako nazwy kolumny. Twoje zapytanie powinno wyglądać tak
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'