Задавайте вопросы, мы ответим
Вы не зашли.
Имеется
Таблица 1 - редактируемая
Таблица 2 - шаблон
Сценарий
В процессе работы программы таблица "Таблица 1" подвергается редактированию.
Редактирование может заключаться в следующем:
- количество записей равно нулю (т.е. таблица пуста);
- количество записей больше чем в "Таблица 2";
- количество записей меньше чем в "Таблица 2";
- содержание записей отличается от "Таблица 2";
Количество и наименование столбцов всегда одинаково в обеих таблицах.
Вопрос
Как отследить несоответствия в "Таблица 1" по отношению к "Таблица 2"?
Состав несоответствий:
- 1. количество записей равно нулю (т.е. таблица пуста);
- 2. количество записей больше чем в "Таблица 2";
В результате вывести лишние записи таблицы "Таблица 1"
- 3. количество записей меньше чем в "Таблица 2";
В результате вывести записи которые есть в "Таблица 2", но отсутствуют в "Таблица 1"
- 4. содержание записей (одна, несколько, все) отличается от записей "Таблица 2";
Таблицы
Таблица 1 (редактир)
+--------+--------------------+--------------------+-------------------+
| ID_ТБЛ| pole_1 | pole_2 | pole_3 |
+--------+--------------------+--------------------+-------------------+
| 1 | pole_1_запись_1 | pole_2_запись_1 | pole_3_запись_1 |
| 2 | pole_1_запись_2 | pole_2_запись_2 | pole_3_запись_2 |
| 3 | pole_1_запись_3 | pole_2_запись_3 | pole_3_запись_3 |
+---------+-------------------+--------------------+--------------------+
Таблица 2 (ШБЛ)
+--------+-----------------+-----------------+-----------------+
| ID_ТБЛ | pole_1 | pole_2 | pole_3 |
+--------+-----------------+-----------------+-----------------+
| 1 | pole_1_запись_1 | pole_2_запись_1 | pole_3_запись_1 |
| 2 | pole_1_запись_2 | pole_2_запись_2 | pole_3_запись_2 |
| 3 | pole_1_запись_3 | pole_2_запись_3 | pole_3_запись_3 |
+--------+-----------------+-----------------+-----------------+
Отредактированно sql157 (02.06.2017 12:31:42)
Неактивен
select count(*) from `Таблица ` -- кол-во записей
select count(*) `Таблица 1` left join `Таблица 2` t2 using(ID_ТБЛ, pole_1, pole_2, pole_3) where t2.ID_ТБЛ is null or t2.pole_1 is null or ... -- кол-во отличающихся записей
Неактивен
vasya написал:
select count(*) from `Таблица ` -- кол-во записей
select count(*) `Таблица 1` left join `Таблица 2` t2 using(ID_ТБЛ, pole_1, pole_2, pole_3) where t2.ID_ТБЛ is null or t2.pole_1 is null or ... -- кол-во отличающихся записей
Немного не корректно сформулировал вопрос...
Скорректировал.
Привожу корректировку вопроса.
- 2. количество записей больше чем в "Таблица 2";
В результате вывести лишние записи таблицы "Таблица 1"
- 3. количество записей меньше чем в "Таблица 2";
В результате вывести записи которые есть в "Таблица 2", но отсутствуют в "Таблица 1"
Неактивен
left join .. is null
Неактивен