Sync
Новичок
Выборка пересекающихся контактов
Есть таблица пользователей. Каждый пользователь может иметь несколько е-мейлов и несколько телефонов.
Соответственно есть две таблицы:
users_emails
id email
и users_phones:
id phone
Нужно выбрать всех пользователей у которых совпадают либо e-мейл либо телефон.
Идеальный вид результата такой:
Пробовал писать такой запрос, но появляются лишние строки, требующие дополнительной программной обработки
Есть таблица пользователей. Каждый пользователь может иметь несколько е-мейлов и несколько телефонов.
Соответственно есть две таблицы:
users_emails
id email
и users_phones:
id phone
Нужно выбрать всех пользователей у которых совпадают либо e-мейл либо телефон.
Идеальный вид результата такой:
PHP:
id_1 id_2 what
1 2 phone
1 2 email
1 3 email
3 5 phone
PHP:
SELECT
utp1.id AS id_phone_1,
utp2.id AS id_phone_2,
ute1.id AS id_email_1,
ute2.id AS id_email_2,
FROM `users_phones` utp1
INNER JOIN `users_phones` utp2 ON utp1.phone = utp2.phone AND utp1.id <> utp2.id
INNER JOIN `users_emails` ute1, `users_emails` ute2 ON ute1.email = ute2.email AND ute1.id <> ute2.id