我有一個查詢像下面...如何在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