select spmoveos.newstoim, moveos.datob, spmoveos.ckatos, katos.nameos
from moveos, spmoveos, katos
where
((
moveos.nrec /== spmoveos.cmoveos and
begper <<= moveos.datob and
endper >>= moveos.datob and
4 == moveos.sysoper and
15 == moveos.tipdoc and
katos.nrec == spmoveos.ckatos and
3 == spmoveos.cnastros
));
select spmoveos.newstoim, moveos.datob, spmoveos.ckatos, katos.nameos
from moveos, spmoveos, katos
where
((
moveos.nrec /== spmoveos.cmoveos and
begper <<= moveos.datob and
endper >>= moveos.datob and
4 == moveos.sysoper and
15 == moveos.tipdoc and
spmoveos.ckatos == katos.nrec and
3 == spmoveos.cnastros
));
Как видно, они различаются только предпоследней связью: поля переставлены. Однако 2-й запрос выдаёт данные, а 1-й - пустой. Неужели такое поведение системы нормально? И вопрос для знатоков: что вызывает такие результаты? Я догадываюсь, что дело в каких-то индексах...
Спасибо за внимание!
Шарюсь в темах по проблеме с выборками, вот, наткнулся:
Semi-bit писал(а):
n0where писал(а):т.е. вы на основании moveos ищите spmoveos, на основании spmoveos ищите katos, что верно.
Иными словами, слева указывается ключ, справа - множество значений, в которых его следует искать.
Собственно, с понимания этого факта и началось моё знакомство с Випом
Хм, может быть наоборот: справа указывается первичный ключ таблицы (.nrec), а слева - множество значений (вторичный ключ) в подцепленной таблице, в котором его следует искать??
zna писал(а):Шарюсь в темах по проблеме с выборками, вот, наткнулся:
Semi-bit писал(а):
n0where писал(а):т.е. вы на основании moveos ищите spmoveos, на основании spmoveos ищите katos, что верно.
Иными словами, слева указывается ключ, справа - множество значений, в которых его следует искать.
Собственно, с понимания этого факта и началось моё знакомство с Випом
Хм, может быть наоборот: справа указывается первичный ключ таблицы (.nrec), а слева - множество значений (вторичный ключ) в подцепленной таблице, в котором его следует искать??
в связке "((ыва== фыва))" - значение слева - ключ.
просто фильтр "and rtr = key" - справа (но здесь фактически сложившаяся практика, т.к. можно менять местами )