@variables
sind nicht DECLARED
.
Entweder:
DECLARE user_same BOOLEAN;
SELECT 1 INTO user_same WHERE ...
oder
SELECT @user_same := 1 WHERE ...
Besser noch, dies vermeidet die Notwendigkeit der Variable.
IF (EXISTS SELECT * FROM ...)
Verwenden Sie auch nicht das Konstrukt IN ( SELECT ... )
; es ist normalerweise besser, WHERE EXISTS ( SELECT * FROM ... )
zu verwenden oder JOIN ... ON ...
.
(Es können weitere Probleme auftreten, nachdem diese behoben wurden.)