Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
Есть запрос в предложении WHERE которого происходит сравнение поля таблицы с подзапросом. Читал, что в этой ситуации вместо = следует применять IN. А какой оператор необходимо поставить вместо >(<)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 09:54 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
nikolaich2 wrote: > Есть запрос в предложении WHERE которого происходит сравнение поля > таблицы с подзапросом. Читал, что в этой ситуации вместо = следует > применять IN. Можно =, можно IN. Вообще-то семантика у этих двух операций разная, поэтому они не взаимозаменяемы. Обе операции могут предварять подзапрос. Подзапросы только в этих двух случаях должны быть разные : для = должен возвращаться скаляр - одна строка и одно поле. Для in - список из одного поля (набор данных, содержащий одно поле). А какой оператор необходимо поставить вместо >(<)? Никакой, > или < Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 09:58 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
MasterZiv А какой оператор необходимо поставить вместо >(<)? Никакой, > или < Если просто написать >, то запрос не работает. Пишет, что подзапрос возвращает больше одной строки. Если подставить IN, то все работает. Но мне как раз нужен эквивалент >. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 10:13 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
тогда Вам imho нужен join, а не под запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 10:18 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
MasterZivдля = должен возвращаться скаляр - одна строка и одно поле. Для in - список из одного поля (набор данных, содержащий одно поле).в постгресе при проверке на ><= должна возвращаться одна строка, которая может содержать более одного поля. аналогично для IN - набор строк, которые могут содержать более одного поля Код: plaintext 1. 2. 3. 4. nikolaich2Если просто написать >, то запрос не работает. Пишет, что подзапрос возвращает больше одной строки. Если подставить IN, то все работает. Но мне как раз нужен эквивалент >.или изменить подзапрос, чтобы он гарантированно возвращал не более одной строки. или уточнить задачу, надо ли чтобы условие > выполнялось а) для каждой строки из подзапроса, или б) для некоторой строки из подзапроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 10:28 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
Решил написать View и его использовать вместо подзапроса. Все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 10:55 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
nikolaich2 wrote: > Если просто написать >, то запрос не работает. Пишет, что подзапрос > возвращает больше одной строки. Если подставить IN, то все работает. Но > мне как раз нужен эквивалент >. Так надо просто уметь запросы писать. Вы, видимо, не умеете. Я в общем попытался написать, как надо. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 11:53 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat wrote: > в постгресе при проверке на ><= должна возвращаться одна строка, которая > может содержать более одного поля. аналогично для IN - набор строк, Видимо, тут описка. должно быть "которая НЕ МОЖЕТ содержать более одного поля". Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 11:55 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
MasterZivВидимо, тут описка. должно быть "которая НЕ МОЖЕТ содержать более одного поля".описки нет. строка МОЖЕТ содержать больше одного поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 12:05 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
MasterZiv nikolaich2 wrote: > Если просто написать >, то запрос не работает. Пишет, что подзапрос > возвращает больше одной строки. Если подставить IN, то все работает. Но > мне как раз нужен эквивалент >. Так надо просто уметь запросы писать. Вы, видимо, не умеете. Я в общем попытался написать, как надо. Вы наверное не обратили внимание, что замена знака > на IN приводит к тому, что запрос работает, но естественно возвращает не тот набор данных, который нужен мне. Т.е. я меняю всего один оператор, и это приводит к тому, что запрос перестает работать. Исходя из этого я и предположил, что по аналогии с заменой = на IN, необходимо > менять на какой-либо другой оператор. Хотя возможно я и ошибаюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 12:22 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
nikolaich2 wrote: > Вы наверное не обратили внимание, что замена знака > на IN приводит к > тому, что запрос работает, но естественно возвращает не тот набор > данных, который нужен мне. почему же ? Я это прекрасно понимаю. Т.е. я меняю всего один оператор, и это > приводит к тому, что запрос перестает работать. Исходя из этого я и > предположил, что по аналогии с заменой = на IN, необходимо > менять на > какой-либо другой оператор. Хотя возможно я и ошибаюсь. Нет, не обязательно. Но видимо я понял, что вам нужно. Это выгдялит как Код: plaintext 1. 2. 3. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 13:23 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
MasterZiv Нет, не обязательно. Но видимо я понял, что вам нужно. Это выгдялит как Код: plaintext 1. 2. 3. Да. Это именно то что я хотел. Все работает. Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 14:04 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
exists по идее тоже должен работать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 10:55 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
st_serg wrote: > exists по идее тоже должен работать.... Конечно, но человеку зачем-то надо было именно >. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 10:58 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
да вроде не нужно, он просто прочитал об этом (in и подзапросы) но, видимо, в источнике просто забыли, что можно использовать exists впрочем не важно, я лишь хотел сказать автору, что существует еще один вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 11:04 |
|
||
|
помогите с подзапросом
|
|||
|---|---|---|---|
|
#18+
st_sergда вроде не нужно, он просто прочитал об этом (in и подзапросы) но, видимо, в источнике просто забыли, что можно использовать exists впрочем не важно, я лишь хотел сказать автору, что существует еще один вариант Все проще. Знаний мало, с английским полохо. В этой ситуации искать альтернативные решения, для ситуации о которой я задавал вопрос сложно. Вот и решил работать в том направлении, которое на тот момент мне казалось предпочтительным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 19:03 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35519564&tid=2004091]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 282ms |
| total: | 437ms |

| 0 / 0 |
