我有一个像下面这样的查询...
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
当我尝试在 WHERE 子句中分配userGroupID时,SQL 会触发一个错误,提示 SQL 错误(1054):“where 子句”中的未知列“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分配给变量的值。
忽略查询中的星号*