Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запрос на поиск дупликатов среди данных двух таблиц с учетом связанных с ними атрибутов
|
|||
|---|---|---|---|
|
#18+
всем привет Есть таблица с импортированными данными - главная сущность и связанная таблица с ее атрибутами. Нужно реализовать проверку, что в базе еще нет сущности с таким же названием и набором атрибутов. Набор атрибутов представлен в отдельной таблице как пара название критерия - значение Наличие атрибутов не обязательно. Находим сущности в базе, совпадающие по названию с импортируемой строкой. сравниваем атрибуты каждой такой сущности с импортируемыми, и если множество атрибутов импортированной сущности полностью входит в множество существующих атрибутов, то такую сущность должны вернуть как дубликат. При этом в импорте может быть меньше атрибутов (если не все атрибуты импортируются) чем в атрибутах в базе, но не наоборот. вопрос, можно ли данную задачу решить с помощью запроса не прибегая к использованию курсора? Если да, то подскажите как это можно осуществить? нужные для сравнения данные из импорта: ;with import_data as ( select main_tmp.row_id, // номер строки импорта, нужно отобразить в какой строке дубликат main_tmp.main_id, // id главной сущности, может быть не указано main_tmp.main_name, criteria_tmp.criteria_name, criteria_tmp.criteria_value from main_tmp left join criteria_tmp on main_tmp.[row_id] = criteria_tmp.[row_id] ) нужные для сравнения данные из базы: with existing_data as ( select main.main_id, main.main_name, main_criteria.criteria_name, main_criteria.criteria_value from main inner join import_data on import_data.main_name = main.main_name and (import_data.main_id is null or import_data.main_id <> main.main_id) left join main_criteria on main.main_id = main_criteria.main_id ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 20:49 |
|
||
|
Запрос на поиск дупликатов среди данных двух таблиц с учетом связанных с ними атрибутов
|
|||
|---|---|---|---|
|
#18+
Тэй, на первый взгляд задача на "реляционное деление". одним запросом решается. причем, больше чем одним способом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 20:52 |
|
||
|
Запрос на поиск дупликатов среди данных двух таблиц с учетом связанных с ними атрибутов
|
|||
|---|---|---|---|
|
#18+
Тэй, как пример: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 22:04 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=46&tid=1690518]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
20ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 331ms |

| 0 / 0 |
