Если пользователь существует, то:
mysql> flush privileges;
Я использую запросы в формате Вашего второго примера. Соединение обычно более масштабируемо, чем связанный подзапрос.
Я также использую левые соединения с критерием типа «где table2.id - null».
Определенно кажется более эффективным, чем вариант вложенного запроса.
Я думаю, что Ваш последний оператор является лучшим способом. Можно также попробовать
SELECT A.*
from A left join B on
A.x = B.y
where B.y is null