Вы можете использовать запрос UNION
.Это вернет несколько строк, если у пользователя есть разные значения id
в нескольких таблицах, но, поскольку вам нужно знать только одну или несколько строк, что хорошо.
SELECT id FROM users WHERE email = :email
UNION
SELECT id FROM employees WHERE email = :email
UNION
SELECT id FROM teachers WHERE email = :email
В качестве альтернативы вы можете использовать EXISTS
выражение для получения простого результата «да / нет» из запроса:
SELECT EXISTS (SELECT * FROM users WHERE email = :email)
OR EXISTS (SELECT * FROM employees WHERE email = :email)
OR EXISTS (SELECT * FROM teachers WHERE email = :email)
Если вам интересно узнать, в какой таблице находится адрес электронной почты, вы можете изменить запрос UNION
, чтобы получить эту информациюа также:
SELECT 'users' AS `table`, id FROM users WHERE email = :email
UNION
SELECT 'employees', id FROM employees WHERE email = :email
UNION
SELECT 'teachers', id FROM teachers WHERE email = :email