|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
IDS 12.10.FC1 Создаем: Код: sql 1. 2. 3.
Вставляем: Код: sql 1. 2. 3.
Выполняем в dbaccess: Код: sql 1. 2. 3.
Получаем: id name id_1 name_1 1 ABCDEFGHIJKLMNOPQRUVWXYZ NULL NULL Чешем репу (с) :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 12:44 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
ak-47, Стоп это я неправильно упростил! Здесь норм Сейчас перепишу. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 13:13 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
Еще разок Создаем: Код: sql 1. 2. 3.
Вставляем: Код: sql 1. 2. 3.
Сейчас запрос Код: sql 1. 2. 3.
не возвращает записей, Далее доводим кол-во записей в _bbb до 2048 и более Код: sql 1.
И предыдущий запрос начинает возвращать id name id_1 name_1 1 ABCDEFGHIJKLMNOPQRUVWXYZ NULL NULL ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 13:28 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Informix 11.70FC7W3 Всегда возвращает только одну запись, независимо от количества строк в _bbb результат1 ABCDEFGHIJKLMNOPQRUVWXYZ NULL NULL ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 15:56 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
victor16Всегда возвращает только одну запись, независимо от количества строк в _bbb Ух ты. Дело в том, что не должно быть там записи. Условие написано в where, а не в условии объединения ...on... and... Такой результат должен возвращать запрос: Код: sql 1. 2.
11.7.FC5, 11.7.TC4, считаю правильным выполнение: Код: sql 1. 2. 3.
без записей Код: sql 1. 2.
id name id_1 name_1 1 ABCDEFGHIJKLMNOPQRUVWXYZ NULL NULL ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 16:30 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
ak-47считаю правильным выполнение: Код: sql 1. 2. 3.
без записей Википедия похоже не согласна с Вами :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 16:51 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
Попробовал на 11.50.UC7W1. Результат не изменился от смены версии. Ищите подвох в данных, хранящихся в таблицах. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Всегда возвращает только одну запись, независимо от количества строк в _bbb результат1 ABCDEFGHIJKLMNOPQRUVWXYZ NULL NULL ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 17:01 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
victor16, Почему вы в своем примере сериал в _bbb начинаете с 2 ? Там нечему объединятся. Такой результат меня не удивляет ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 18:05 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
victor16Википедия похоже не согласна с Вами :) Прочитал, спасибо. Там приводится классический пример left join. Объясню на данных из Википедии, что получается у меня: У меня нет нулов во второй таблице, а есть условие where b.cityid is null Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Запрос Код: sql 1. 2. 3.
Не должен возвращать записей. Как это и делается на 11.7.FC5, 11.7.TC4 На 12 наблюдаю тот же эффект что и раньше - нет записей, при добавлении в person более 2048 - есть. Проверьте на 11.5 без serial(1), serial(2) в create, это было нечестно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 18:07 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
Ikir+ реляционная алгебра :-) обоснуй ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 18:23 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
ak-47, Ну вы выполните select * from _aaa a left join _bbb b on a.id = b.id без WHERE и увидите сколько у вас записей имеют b.id is NULL. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 19:18 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
Ikir, я то это выполнил более десятка раз, и здесь писал, что их нет. И нет значение a.id, которых нет в b.id. Выполните вы ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 19:23 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
ak-47Ikir, я то это выполнил более десятка раз, и здесь писал, что их нет. И нет значение a.id, которых нет в b.id. Выполните вы Вы на ходу меняете правила игры, а я так не играю. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 19:35 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
Ikir, первый пост был, к сожалению ошибочным, я сразу исправился. Более правила игры не менялись. Впрочем это ваше право. Не стОит. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 19:44 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
ak-47Еще разок Создаем: Код: sql 1. 2. 3.
Вставляем: Код: sql 1. 2. 3.
Сейчас запрос Код: sql 1. 2. 3.
не возвращает записей, Далее доводим кол-во записей в _bbb до 2048 и более Код: sql 1.
И предыдущий запрос начинает возвращать id name id_1 name_1 1 ABCDEFGHIJKLMNOPQRUVWXYZ NULL NULL Вы смотрели собственно значения serial в обеих таблицах? Если значения id в таблицах _aaa и _bbb в вашем примере начинаются с 1 и последовательно возрастают, то согласно http://pic.dhe.ibm.com/infocenter/informix/v121/topic/com.ibm.sqls.doc/ids_sqs_1033.htm запрос Код: sql 1. 2. 3.
после добавления записи в _aaa: 1. до добавления записей в _bbb запрос должен возвращать 1 запись (ибо left join к одной записи в _aaa таки не сможет пришить записи из _bbb, после чего where пропустит в результат эту строку). 2. после добавления первой и всех последующих записей в _bbb должен всегда возвращать 0 записей (ибо left join к одной записи в _aaa таки пришьёт первую запись из _bbb, после чего where не пропустит в результат эту строку). Если это не так, баг либо в доке 12.1, либо в серваке 12.1 :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 20:47 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
АнатоЛой, конечно смотрел, да, начинаются с 1, последовательно возрастают. Нулов нет! Полностью согласен с докой и с вашими обоими комментариями. Условие where должно применяться на результат объединения. Т.е. в результате выполнения не должно возвращаться записей. В 12.1 это не так, при условии большого кол-ва записей в присоединяемой таблице. Это баг. И не доки. И немаленький. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 22:46 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
ak-47Условие where должно применяться на результат объединения. Т.е. в результате выполнения не должно возвращаться записей. В 12.1 это не так, при условии большого кол-ва записей в присоединяемой таблице. Это баг. И не доки. И немаленький. Можете привести работоспособный и воспроизводимый SQL-скрипт? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2013, 08:25 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
victor16Можете привести работоспособный и воспроизводимый SQL-скрипт? Конечно. Вот он. Естественно, как добавил АнатоЛой: "значения id в таблицах _aaa и _bbb в примере начинаются с 1 и последовательно возрастают" ЗЫ сегодня проверено еще на 12.1.UC1.DE ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2013, 11:11 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
ak-47, Несколько иные результаты : Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2013, 11:37 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
Ikir, спасибо. Значит известно и пофиксено. Как поставим FC2 - отпишусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2013, 12:10 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
IBM Informix Dynamic Server Version 12.10.FC2 Без изменений Во вложении файл с оформленным работоспособным, воспроизводимым скриптом. Результат dbaccess: id 1 name ABC id name ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2013, 15:54 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
ak-47, Что то в консерватории не так. Код: 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. 26. 27. 28. 29. 30. 31. 32. 33.
Ну поставьте после своего SELECT еще один select * from _bbb b where b.id = 1;... Попробуйте объявить переменные serial8... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2013, 16:36 |
|
Загадка Informix 12
|
|||
---|---|---|---|
#18+
IkirНу поставьте после своего SELECT еще один select * from _bbb b where b.id = 1; да здесь без проблем: Код: sql 1. 2.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2013, 16:55 |
|
|
start [/forum/topic.php?fid=44&msg=38465472&tid=1607003]: |
0ms |
get settings: |
19ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
24ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
457ms |
get tp. blocked users: |
0ms |
others: | 273ms |
total: | 784ms |
0 / 0 |