SQL,where子句未应用

时间:2012-12-19 18:24:24

标签: mysql sql where

我正在使用mysql 5.1

这是我的要求, 我想计算0到14岁之间以及启用帐户的用户数量。

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

user.enabled=1条件正常,但不是profile.age BETWEEN 0 AND 14

1 个答案:

答案 0 :(得分:2)

您没有加入2个表,因此您只是运行两者的笛卡尔积。您需要通过公共密钥加入它们。

这样的事情:

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