|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Имеются две таблицы T1, T2 с одинаковым набором полей: ID (INTEGER, PRIMARY KEY) и A (INTEGER). Значения ID двух таблиц никак не связаны между собой. Таблицы содержат одинаковое количество записей. Требуется одним запросом обновить значение поля A таблицы T1 так, чтобы следующие запросы возвращали одинаковый результат с точностью до порядка записей: Код: sql 1.
Код: sql 1.
Версия Firebird: 1.5 . ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 08:07 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Hello, Interloper! You wrote on 25 июня 2015 г. 11:06:32: Interloper> Требуется одним запросом... Версия Firebird: 1.5.обломись. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 11:06 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Interloper, делай ХП и вызывай её одним запросом ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 11:12 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Симонов Денисделай ХП и вызывай её одним запросом Ещё можно сделать EXECUTE BLOCK, одним запросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 11:22 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
-Симонов Денисделай ХП и вызывай её одним запросом Ещё можно сделать EXECUTE BLOCK, одним запросом. МимопроходящийHello, Interloper! You wrote on 25 июня 2015 г. 11:06:32: Interloper> Требуется одним запросом... Версия Firebird: 1.5. обломись . Выделил для анонимных слабозрячих. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 11:25 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
miwaonlineВыделил для анонимных слабозрячих. Респект от анонимных слабозрячих :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 11:32 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Мимопроходящий, Боюсь, обломаться придется тебе, потому что решение есть и оно работает на 1.5. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 11:56 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
InterloperМимопроходящий, Боюсь, обломаться придется тебе, потому что решение есть и оно работает на 1.5. Решение одним запросом в студию. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:01 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Граур Станислав, А самому подумать? Решение я приведу, если никто не выложит его раньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:15 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Interloper, т.е. ты загадки тут задаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:18 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
kdv, На момент написания вопроса я не знал решения. Тебя что-то смущает тут? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:24 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Interloper, нам оно тожеинтересно. Ибо как это сделать в 1.5 одним запросом без ХП я не представляю. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:26 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Симонов Денис, А в чем принципиальная сложность сделать это в 1.5, по-вашему? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:29 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Interloper, сложность в формулировке. Я вот вижу только один способ грохнуть всё из T1 и залить в неё записи из T2. Ибо условие > Значения ID двух таблиц никак не связаны между собой. Что в T1 могут быть такие ID которых нет в T2 и наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:35 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Симонов Денис, А нам не нужно, чтобы ID были одинаковые у них. Нам важно, чтобы значения столбца A из T2 "спроецировались" на столбец A в T1 в том же порядке, что и в T2 при сортировке по ID. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:43 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Вот тебе Т1: IDA1144 Вот тебе Т2: IDA2233 Проецируй! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:47 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Вот пример. Таблица T1: ID A 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 Таблица T2: ID A 2 1 3 2 5 3 7 4 11 5 13 6 17 7 19 8 23 9 29 10 После выполнения запроса таблица T1 должна иметь вид: ID A 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:49 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Должно получиться: 1 2 4 3 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:50 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
InterloperДолжно получиться: А не получится. Нет способа сделать это в 1.5 одним запросом. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 13:00 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, На чем основано данное утверждение? У меня получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 13:01 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
InterloperУ меня получилось. Значит ты либо чего-то не учёл, либо нарушил одно из условий. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 13:02 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Interloper, ну так выложи решение. Или оно очень секретное ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 13:04 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
хм. А проще вот этого можно? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 13:07 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Вот решение: Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 13:14 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Чуток меняем данные и решение становится не рабочим. Вот тебе Т1: IDA1144 Вот тебе Т2: IDA5233 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 13:18 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Симонов Денис, С чего бы? UPDATE идет по индексу первичного ключа. Проверил, все ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 13:29 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Безумное предложение. Берём генератора - G1 и G2 - с равными значениями... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 13:31 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
InterloperВот решение: Как я и подозревал, оно трёхэтажное. Сойдёт для sql-ex. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 13:38 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Главное, что оно рабочее. А люди здесь безаппеляционно утверждали, что в FB 1.5 так сделать нельзя и при этом не приводили никаких аргументов. Это как минимум странно для такого серьезного сообщества профессионалов, как sql.ru. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 14:10 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
MrCatБезумное предложение. Берём генератора - G1 и G2 - с равными значениями... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Идея имеет право на существование. Но в FB 1.5 разве можно делать джойны подзапросов? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 14:13 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Interloper, эффективность этого решения оставляет желать лучшего. Попробуй прогони его на табличках с десятками миллионов записей ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 14:13 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Симонов Денис, Не спорю. Но сама задачка весьма интересна. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 14:20 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
пощупай на других SQL-серверах и огорчись. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 14:22 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Мимопроходящий, Речь здесь о Firebird. На других серверах также задача решается, например, очень просто сделать это на Oracle с использованием материализованных представлений WITH. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 14:26 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
InterloperМимопроходящий, Речь здесь о Firebird. На других серверах также задача решается, например, очень просто сделать это на Oracle с использованием материализованных представлений WITH. На Oracle 1.0 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 14:29 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Interloper, в тройке тоже можно намного эффективней сделать Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 14:32 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Hello, Interloper! You wrote on 25 июня 2015 г. 14:32:57: Interloper> с использованием материализованных представлений WITH. безалаберное использование малознакомых терминов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 14:33 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Мимопроходящий, Да нет, понятно о чем идет речь. Гораздо более безалаберно было утверждать "обломись на 1.5". У чужих в глазу соринку видим? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 14:49 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
InterloperЭто как минимум странно для такого серьезного сообщества профессионалов, как sql.ru.Профессионалы потому и серьёзные, что не лезут на шкаф только потому, что это возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 18:28 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
InterloperДа нет, понятно о чем идет речь. Гораздо более безалаберно было утверждать "обломись на 1.5". У чужих в глазу соринку видим? Ради интереса сделал тестовый пример. Залил совсем чуть-чуть записей 10к штук Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
На FB 1.5 я бы добавил в каждую таблицу по дополнительному столбцу ido integer и запустил бы такую SP Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 06:36 |
|
Установление неявного соответствия между строками
|
|||
---|---|---|---|
#18+
Граур Станислав, мой запрос. В каждой таблице по 10k записей Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
но он только на трёшке работает ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 10:15 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1562757]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
others: | 257ms |
total: | 411ms |
0 / 0 |