|
|
|
Выбор неповторяющихся значений из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
Доброго дня. Натолкните плиз на правильный путь. Дано: Firebird 2.5 и таблицы: Главная таблица Main_Table ID NAME N_PART 1 Уголок равнополочный партия № 315 2 Уголок равнополочный партия № 100 и дочерние: HARDNESS_Table ID_MAIN ID HARDNESS1 HARDNESS2 1 1 35.0 11.2 1 2 23.5 10.58 1 3 12.7 34.21 2 1 35.0 11.2 2 2 23.5 10.58 2 3 12.7 34.21 TENSION_Table ID_MAIN ID TENSION1 TENSION2 TENSION3 1 1 0.1 0.15 значение 1 1 2 0.3 0.17 значение 2 1 3 0.2 0.17 значение 1 2 1 0.1 0.12 значение 1 2 2 0.3 0.15 значение 3 2 3 0.6 0.12 значение 1 на самом деле дочерних таблиц больше - но для демонстрации принципа думаю достаточно. Так вот задача: Нужно из главной таблицы вывести только те строки, для которых наборы атрибутов в дочерних таблицах отличаются. Неодинаковое количество строк в дочерних таблицах тоже считается различием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 11:31:02 |
|
||
|
Выбор неповторяющихся значений из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
tanyxa, 1. Получить множество Main_Table, с которыми работать (М1). 2. Получить набор уникальных свойств по одному критерию (по HARDNESS_Table например) (R1). 3. Используя R1 и М1 получить номер Main_Table.id (N1) ( Код: plsql 1. 2. 3. 4. ) 4. Записать N1 в множество М2 5. Повторить п.1 для следующей дочерней таблицы. М1 R1 М2 1 12.3 123.6 45.5 1 2 123.34 23 17 2 3 R2 12 13 134 5 56 56 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 13:46:08 |
|
||
|
Выбор неповторяющихся значений из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
venoel, это вы ля какой субд такой запрос написали? Лично я вовсе не понял чего автор хотел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 13:50:01 |
|
||
|
Выбор неповторяющихся значений из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
tanyxaвывести только те строки, для которых наборы атрибутов в дочерних таблицах отличаются Отличаются от чего? По-любому, full outer join + having count должны бы помочь... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 14:00:30 |
|
||
|
Выбор неповторяющихся значений из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
уточняю суть вопроса. Нужно отобрать только те записи из главной таблицы, для которых атрибуты перечисленные в дочерних таблицах разные. Например если у уголка из партии 315 все записи в таблицах HARDNESS_Table и TENSION_Table такие же как у уголка из партии 100 - то нужно показать только одну запись - либо уголок партии 315, либо партии 100. В противном случае - показать обе записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 14:49:44 |
|
||
|
Выбор неповторяющихся значений из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
tanyxa, тут поможет обычный distinct ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 14:55:14 |
|
||
|
Выбор неповторяющихся значений из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
Симонов Денистут поможет обычный distinct Не поможет если не аггрегировать записи из дочерних таблиц. Придётся писать такой навороченный и тормозной запрос, что я его даже придумать сходу не могу. Что-то с NOT EXISTS и уже вышеназнанными full outer join + count(distinct). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 15:07:42 |
|
||
|
Выбор неповторяющихся значений из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
А что-то вот такое???? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 15:27:49 |
|
||
|
Выбор неповторяющихся значений из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
m7m, боюсь этот запрос будет дико тормозить даже при небольшом количестве данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 15:29:27 |
|
||
|
|

start [/forum/search_topic.php?author=Slava_200&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
get settings: |
8ms |
get forum list: |
18ms |
get settings: |
6ms |
get forum list: |
14ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
247ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 1482ms |
| total: | 1905ms |

| 0 / 0 |
