我有一个查询像下面...如何在WHERE子句中使用MYSQL的“AS”返回值?
SELECT
contents.id, contents.title, contents.createdBy,
(SELECT userGroup FROM suser_profile WHERE userId =
(SELECT users.id
FROM
users
WHERE
login = contents.createdBy)
) as userGroupID
FROM
contents
WHERE
contents.id > 0
AND contents.contentType = 'News'
**AND userGroupID = 3**
LIMIT 0, 10
当我尝试分配userGroupID内WHERE子句的SQL触发一个错误说SQL错误(1054):未知列“userGroupID”在“哪里条款”
与此同时,如果我做变化不大像下面,,
SELECT
contents.id, contents.title, contents.createdBy
FROM
smart_cms_contents
WHERE
contents.id > 0
AND contents.contentType = 'News'
**AND (SELECT userGroup FROM user_profile WHERE userId =
(SELECT users.id
FROM
users
WHERE
users.login = contents.createdBy)
) = 3**
LIMIT 0, 10
那么查询工作正常。
我必须使用多个userGroupID检查,以便第二种风格会使查询大,我必须有一个样式像第一个,任何帮助赞赏。
*注意:表名不是我在项目中使用的原始名称。如果表名中有错误,您可以忽略它。我主要关心的是如何在WHERE子句中使用AS赋值给一个变量。
忽略STARS查询*
感谢您使用不同的解决方案。工作正常。 – BlueBird 2010-07-19 07:51:18