разные результаты SQL выборки

Ответить
Аватара пользователя
Vlad Drakula

разные результаты SQL выборки

Сообщение Vlad Drakula »

есть два запроса:



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 записей



куда делись все остальные записи???
Аватара пользователя
dmitryst

Re: разные результаты SQL выборки

Сообщение dmitryst »

Vlad Drakula А какой из результатов правильный? И вообще, что за БД?
Аватара пользователя
Vlad Drakula

Re: разные результаты SQL выборки

Сообщение Vlad Drakula »

dmitryst

база MySQL 4.1.16

а о правильности ответа ничего сказать не могу т.к. по идее должны эти оба запросы выдавать одно и тоже....
Аватара пользователя
dmitryst

Re: разные результаты SQL выборки

Сообщение dmitryst »

Vlad Drakula Меня смущает структура "...as...as". ИМХО, второ вариант правильнее. Сейчас гуру подойдут, побьют Изображение
Аватара пользователя
Vlad Drakula

Re: разные результаты SQL выборки

Сообщение Vlad Drakula »

dmitryst


Цитата:



ИМХО, второ вариант правильнее.



как второй вариант может быть правиьлнее если он включает результаты выборки первым вариантом?




Цитата:



Меня смущает структура "...as...as".



вроде бы стандартная практика для того чтобы в одном запросе работать снесколькими эгземплярами одной таблицы.
Аватара пользователя
vadimiron

Re: разные результаты SQL выборки

Сообщение vadimiron »

Vlad Drakula



А что это такое?


Цитата:



bnt_rt_relation_record



Просто ошибка или другая таблица?



Таблица же завётся:


Цитата:



rt_relation_record
Аватара пользователя
dmitryst

Re: разные результаты SQL выборки

Сообщение dmitryst »

Vlad Drakula Я имел в виду не синтаксические ошибки, а логические (т.е. написано правильно, но работает не так, как надо). Я обычно для теста создаю маленькие тест-таблицы и пошагово отлаживаю выборку (с контролем того, что выдает каждая)
Аватара пользователя
Abell2000

Re: разные результаты SQL выборки

Сообщение Abell2000 »

Я так думаю что

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

Re: разные результаты SQL выборки

Сообщение Igor_I »

А что говорит EXPLAIN?

Вообще-то таблицы действительно разные.
Ответить

Вернуться в «Вебмастеру»