|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
Добрый день. Прошу помочь сделать выборку из таблицы, в результате которой будет информация про отсутствующие данные: Есть список номеров документов: '20342174','20341700','20341113','20340870','20342024' Необходимо сделать запрос в таблицу и вывести информацию про эти номера, только если такой документ отсутствует - выводить информацию в запросе что такой отсутствует Например, если в таблице есть документы только с номерами '20342174','20341700' - то обычный запрос select num, addr from tbl_docs where num in ('20342174','20341700','20341113','20340870','20342024') вернет результат: 20342174 Пушкина 54/3 20341700 Лермонтова 12 а мне надо, чтоб запрос вернул результат: 20342174 Пушкина 54/3 20341700 Лермонтова 12 20341113 20340870 20342024 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 13:25 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
Временная таблица + левый джоин. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 13:27 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
not in () not exists () left join ... on смотря что именно надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 13:28 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:08 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, номера документов есть в какой-то справочной таблице, не из воздуха же они. Тогда никаких временных, просто documents left join info on... where documents.num in ... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:14 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
Номера мне присылают в XLS и даже в скринах. left join tbl_docs не подходит, т.к. таких номеров в таблице нет. Временная таблица - можно, но думал может как-то проще можно? может массив строк... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:33 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
ARTEM_ZPC left join tbl_docs не подходит, т.к. таких номеров в таблице нет. Что сие значит? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:38 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
временную таблицу всё равно заполнить сначала надо, а если количество номеров >1000 ? если бы еще в IBExpert можно было вставить строки (CNTRL+V) в столбец таблицы из XLS столбца, а так insert что ли писать 1000 раз или експорт делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:40 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
ёёёёё, ну если нет некоторых номеров в таблице tbl_docs, чем мне поможет left join? Например: select t.num, t.addr from tbl_docs t left join tbl_docs t2 on t2.id=t.id where t2.num in ('20342174', '20341700','20341113','20340870','20342024') ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:43 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
ARTEM_ZPCа если количество номеров >1000 ? Значит остаётся выбор: использовать пальцы или мозг. Простенькая формула сделает из эксель-столбца скрипт вставки. Простенький скрипт на VBA - сразу вставит их в базу и получит результат. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 15:02 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Я понял, Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 15:11 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
ARTEM_ZPC ёёёёё, ну если нет некоторых номеров в таблице tbl_docs, чем мне поможет left join? Например: select t.num, t.addr from tbl_docs t left join tbl_docs t2 on t2.id=t.id where t2.num in ('20342174', '20341700','20341113','20340870','20342024') Я разве это написал? ёёёёё ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 17:43 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
ARTEM_ZPC временную таблицу всё равно заполнить сначала надо, а если количество номеров >1000 ? если бы еще в IBExpert можно было вставить строки (CNTRL+V) в столбец таблицы из XLS столбца, а так insert что ли писать 1000 раз или експорт делать? Вот как раз когда количество номеров большое - тогда применение временной таблицы становится все более интересным. Делаешь в базе временную таблицу. Делаешь НА КЛИЕНТЕ процедурку: delete from temp; for список номеров do insert into temp И потом уже делаешь запрос с left join. Несмотря на кажущееся обилие "лишних" операций, работает на удивление быстро. Я у себя это дело применяю, и использование временной таблицы обычно ускоряет общее время выполнения и сильно улучшает прозрачность кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 04:39 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
fraks, Разве процедура с delete-insert будет быстрее чем процедура, которая из строки с разделителями выдает список ID как написано здесь? ёёёёё 2. Если уж так хочется таблицу, по почему не временную? Вместо delete (что может вызвать deadlock) вставлять во временную таблицу с дополнительным полем "ID сессии" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 13:19 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
19.02.2020 13:19, Шавлюк Евгений пишет: > Вместо delete (что может вызвать deadlock) вставлять во временную таблицу с дополнительным полем "ID сессии" данные во временной таблице видны только в рамках "сессии". другие "сессии" видят только то, что напихали сами. не надо дуть на воду. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 13:30 |
|
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
|
|||
---|---|---|---|
#18+
Мимопроходящий, Да, я решил что таблица в предложении fraks настоящая. Не временная ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 13:52 |
|
|
start [/forum/topic.php?fid=40&msg=39927984&tid=1560438]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
131ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 502ms |
0 / 0 |