Несколько вопросов о соединении/подзапросе MySQL

Уже около года мы разрешаем нашим пользователям входить в систему с именами пользователей и/или адресами электронной почты, которые не являются уникальными (хотя у каждого пользователя есть уникальный идентификатор). Хотя система изящно обрабатывает повторяющиеся имена пользователей/адреса электронной почты, мы решили, наконец, ввести уникальные имена пользователей и адреса электронной почты. Мне было поручено создать таблицу в MySQL, которая будет отображать дубликаты и таблицы, в которых используется идентификатор дубликата (т. е. таблицы, зависящие от идентификатора пользователя дубликата, используя 1 для истинного и 0 для ложного). Эта таблица затем будет использоваться в качестве справочной после того, как повторяющиеся данные будут помечены для удаления. Короче говоря, я хочу сгенерировать таблицу примерно так:

| User_id | Username | Email | Exists_in_Table1 | Exists_in_Table2 | Exists_in_Table3 |
-----------------------------------------------------------------------------------------------------------
| 0001.....| test1.........| email.| 0..........................| 0..........................| 1..........................|
| 0002.....| test2.........| email.| 0..........................| 1..........................| 1..........................|
| 0003.....| test3.........| email.| 1..........................| 1..........................| 1..........................|


Неважно, как это будет реализовано. Поскольку моих навыков работы с SQL несколько не хватает, я намеревался сделать это программно, используя PHP и ряд простых SQL-запросов. Однако я считаю, что один SQL-запрос или серия запросов (без использования PHP) — самый чистый подход. Я знаю, как запрашивать дубликаты, но не могу понять, как запрашивать несколько таблиц и соединять их по идентификатору пользователя соответствующим образом. Я ценю любую помощь в этом. Спасибо.


person Johnny B    schedule 27.12.2009    source источник


Ответы (1)


person    schedule
comment
Спасибо за это, такой быстрый ответ! Я попробую это, как только вернусь в офис. - person Johnny B; 27.12.2009