Сравнение нескольких таблиц в MySQL - PullRequest
1 голос
/ 18 октября 2011

У меня 4 таблицы с одинаковой структурой. Эти 4 таблицы генерируются из другой, основной таблицы.

  • Основная таблица -> A (10 000 строк)
    • Таблица 1 -> a1 (2 000 строк)
    • Таблица 2 -> a2 (3 000 строк)
    • Таблица 3 -> a3 (4 000 строк)
    • Таблица 4 -> a4 (1 000 строк)

Предполагается, что 4 сгенерированные таблицы не пересекаются, а их сумма равна таблице A.

Но мне нужно это подтвердить.

Мой вопрос: Как мне сравнить эти 4 таблицы, чтобы узнать, имеют ли они какой-либо общий идентификатор?

Я знаю, что могу создать много запросов для внутреннего соединения a1 с a2, a1 с a3 и т. Д.

Но я думаю, что это должен быть другой лучший способ.

1 Ответ

2 голосов
/ 18 октября 2011

Я бы просто union all собрал все идентификаторы из каждой таблицы, group by каждая, и проверил, имеет ли какой-либо из них более одного

select count(*) from (
select id from table1 union all
select id from table2 union all
select id from table3 union all
select id from table4) group by id having count(*)>1

Если какой-либо идентификатор встречается более одного раза, он будетотобразиться в результатах этого запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...