Votre définition alias
ne sont pas bien accueillis par les WHERE
vous devez utiliser la clause HAVING
pour cette
SELECT u_name AS user_name FROM users HAVING user_name = "john";
OU vous pouvez utiliser directement le nom original de la colonne avec l'option WHERE
SELECT u_name AS user_name FROM users WHERE u_name = "john";
De la même manière que vous avez le résultat dans un alias défini par l'utilisateur comme résultat d'une sous-requête ou d'un calcul, il sera accessible par la méthode de l'alias. HAVING
pas par la clause WHERE
SELECT u_name AS user_name ,
(SELECT last_name FROM users2 WHERE id=users.id) as user_last_name
FROM users WHERE u_name = "john" HAVING user_last_name ='smith'