以下のようなお問い合わせがありました...
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 Error(1054):Unknown column "userGroupID" in "where clause" というエラーを発生させます
それまでの間、以下のように少し変更すると、
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チェックを使用して、2 番目のスタイルでクエリが大きくなるようにする必要があります。最初のスタイルのようなスタイルにする必要があります。
*注: テーブル名は、プロジェクトで使用している元の名前ではありません。テーブル名に誤りがある場合は無視してかまいません。私の主な関心事は、WHERE 句内でASによって変数に割り当てられた値を使用することです。
クエリの STARS を無視します*