Tom-pouce
Tom-pouce

Reputation: 798

SQL, where clause is not applied

I'm using mysql 5.1

Here is my request, I want to count the number of users who are between 0 to 14 years old and with an enable account.

SELECT COUNT( DISTINCT user.id ) AS user
FROM profile, user
WHERE (
profile.age
BETWEEN 0 
AND 14
)
AND user.enabled =1

The user.enabled=1 condition is working, but not the profile.age BETWEEN 0 AND 14

Upvotes: 0

Views: 83

Answers (1)

Icarus
Icarus

Reputation: 63970

You aren't joining the 2 tables together therefore you are simply running the cartesian product of the two. You need to join them by a common key.

Something like this:

SELECT COUNT( DISTINCT user.id ) AS user
FROM profile join user on user.id=profile.user_id
WHERE (
profile.age
BETWEEN 0 
AND 14
)
AND user.enabled =1

Upvotes: 2

Related Questions