Задать вопрос
@Binarix

Как выбрать данные из двух таблица без повторов?

Здравствуйте. Есть 2 mysql таблицы - tb1 и tb2, в них содержатся ФИО людей и их email. Нужно сделать выборку без дублей email.

tb1
name email
Иванов ivanov@mail.ru
Петров petrov@mail.ru
Сидоров sidorov@mail.ru

tb2
name email
Смирнов smirnov@email.ru
Кузнецов kuzneciv@emai.ru
Петров petrov@email.ru

Результатом должно быть
name email
Иванов ivanov@mail.ru
Петров petrov@mail.ru
Сидоров sidorov@mail.ru
Смирнов smirnov@email.ru
Кузнецов kuznecov@emai.ru

Сами дубли вывел вот так
SELECT * FROM `tb1`
JOIN `tb2`
ON tb1.email = tb2.email
  • Вопрос задан
  • 2832 просмотра
Подписаться 2 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 3
profit
@profit
Разработка | Оптимизация. Telegram: @evzavyalov
в рамках примера
select * from tbl1
union
select * from tbl2
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `e`.`email`, IFNULL(`t1`.`name`, `t2`.`name`) AS `name`
    FROM (
        SELECT DISTINCT `email` FROM `table1`
            UNION DISTINCT SELECT `email` FROM `table2`
    ) AS `e`
    LEFT JOIN `table1` AS `t1` ON `t1`.`email` = `e`.`email`
    LEFT JOIN `table2` AS `t2` ON `t2`.`email` = `e`.`email`
Ответ написан
elevenelven
@elevenelven
Php Dev @ Amadeus
SELECT
    name, email
FROM
    table_1
WHERE
    email NOT IN (
        SELECT DISTINCT email FROM table_2
    );
UNION
SELECT
    name, email
FROM
    table_2
WHERE
    email NOT IN (
        SELECT DISTINCT email FROM table_1
    );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы