特定のメールリストに登録されていないすべてのユーザーをユーザーデータベースから選択しようとしています。内部クエリは、ユーザーがリストのメンバーである場合にそのユーザーを検索し、外部クエリは、内部結果がゼロ行であるすべてのユーザーを選択します。
SELECT u.userid, u.username, u.mail, u.name,
u.lastname, u.starting_year, u.userid AS UIDD
FROM userdb.users AS u
WHERE (SELECT COUNT(*) FROM maildb.lists AS l,
maildb.list_subscriptions AS s, userdb.users AS u
WHERE u.userid = UIDD
AND l.listid = '$LIST_ID_TO_LOOKUP'
AND s.userid = u.userid
AND s.listid = l.listid) = 0
ORDER BY u.starting_year DESC, u.lastname, u.name;
これは、新しいサーバーに移動してMySQLを含む多くのコンポーネントを更新するまでは問題なく機能しました。
このクエリを実行するとエラーが発生します。
#1054-'where句'の不明な列'UIDD'
これは、現在は非難されている古い構文の問題でしょうか?現在、MySQL5.5.24を実行しています。