есть два запроса:
select r1.id from rt_relation_record as r1, rt_relation_record as r2
where r1.id > r2.id and r1.master_rt_record_id = r2.master_rt_record_id and r1.slave_rt_record_id = r2.slave_rt_record_id
возврящает порядка 530 записей
select id from rt_relation_record where id in (
select r1.id from bnt_rt_relation_record as r1, bnt_rt_relation_record as r2
where r1.id > r2.id and r1.master_rt_record_id = r2.master_rt_record_id and r1.slave_rt_record_id = r2.slave_rt_record_id
)
возвращает порядка 140 записей
куда делись все остальные записи???
разные результаты SQL выборки
-
dmitryst
Re: разные результаты SQL выборки
Vlad Drakula А какой из результатов правильный? И вообще, что за БД?
-
Vlad Drakula
Re: разные результаты SQL выборки
dmitryst
база MySQL 4.1.16
а о правильности ответа ничего сказать не могу т.к. по идее должны эти оба запросы выдавать одно и тоже....
база MySQL 4.1.16
а о правильности ответа ничего сказать не могу т.к. по идее должны эти оба запросы выдавать одно и тоже....
-
dmitryst
Re: разные результаты SQL выборки
Vlad Drakula Меня смущает структура "...as...as". ИМХО, второ вариант правильнее. Сейчас гуру подойдут, побьют 

-
Vlad Drakula
Re: разные результаты SQL выборки
dmitryst
Цитата:
ИМХО, второ вариант правильнее.
как второй вариант может быть правиьлнее если он включает результаты выборки первым вариантом?
Цитата:
Меня смущает структура "...as...as".
вроде бы стандартная практика для того чтобы в одном запросе работать снесколькими эгземплярами одной таблицы.
Цитата:
ИМХО, второ вариант правильнее.
как второй вариант может быть правиьлнее если он включает результаты выборки первым вариантом?
Цитата:
Меня смущает структура "...as...as".
вроде бы стандартная практика для того чтобы в одном запросе работать снесколькими эгземплярами одной таблицы.
-
vadimiron
Re: разные результаты SQL выборки
Vlad Drakula
А что это такое?
Цитата:
bnt_rt_relation_record
Просто ошибка или другая таблица?
Таблица же завётся:
Цитата:
rt_relation_record
А что это такое?
Цитата:
bnt_rt_relation_record
Просто ошибка или другая таблица?
Таблица же завётся:
Цитата:
rt_relation_record
-
dmitryst
Re: разные результаты SQL выборки
Vlad Drakula Я имел в виду не синтаксические ошибки, а логические (т.е. написано правильно, но работает не так, как надо). Я обычно для теста создаю маленькие тест-таблицы и пошагово отлаживаю выборку (с контролем того, что выдает каждая)
-
Abell2000
Re: разные результаты SQL выборки
Я так думаю что
select distinct r1.id from rt_relation_record as r1, rt_relation_record as r2
where r1.id > r2.id and r1.master_rt_record_id = r2.master_rt_record_id and r1.slave_rt_record_id = r2.slave_rt_record_id
вернет как раз порядка 140 записей
select distinct r1.id from rt_relation_record as r1, rt_relation_record as r2
where r1.id > r2.id and r1.master_rt_record_id = r2.master_rt_record_id and r1.slave_rt_record_id = r2.slave_rt_record_id
вернет как раз порядка 140 записей
-
Igor_I