Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » разные результаты SQL выборки

Ответить
Настройки темы
разные результаты SQL выборки

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


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

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

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

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 13:31, 13-02-2007

 

Аватара для dmitryst

Ветеран


Сообщения: 7219
Благодарности: 899

Профиль | Отправить PM | Цитировать


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

-------
Осваиваю FreeBSD


Отправлено: 13:49, 13-02-2007 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


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

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 14:27, 13-02-2007 | #3


Аватара для dmitryst

Ветеран


Сообщения: 7219
Благодарности: 899

Профиль | Отправить PM | Цитировать


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

-------
Осваиваю FreeBSD


Отправлено: 14:48, 13-02-2007 | #4


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


dmitryst
Цитата:
ИМХО, второ вариант правильнее.
как второй вариант может быть правиьлнее если он включает результаты выборки первым вариантом?

Цитата:
Меня смущает структура "...as...as".
вроде бы стандартная практика для того чтобы в одном запросе работать снесколькими эгземплярами одной таблицы.

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 15:17, 13-02-2007 | #5


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Vlad Drakula

А что это такое?
Цитата:
bnt_rt_relation_record
Просто ошибка или другая таблица?

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

-------
Fortes fortuna adiuvat


Отправлено: 01:56, 14-02-2007 | #6


Аватара для dmitryst

Ветеран


Сообщения: 7219
Благодарности: 899

Профиль | Отправить PM | Цитировать


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

-------
Осваиваю FreeBSD


Отправлено: 10:54, 14-02-2007 | #7


Новый участник


Сообщения: 44
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я так думаю что
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 записей


Отправлено: 08:43, 18-02-2007 | #8


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


А что говорит EXPLAIN?
Вообще-то таблицы действительно разные.

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 11:39, 18-02-2007 | #9



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » разные результаты SQL выборки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] *SQL* | MS SQL-2005 как узнать зависимые таблицы pva Программирование и базы данных 1 21-09-2009 10:55
Использование - SQL Srv Ent -> SQL Express, сколько нужно CAL'ов? vpp Лицензирование продуктов Microsoft 1 11-09-2009 13:34
Нужен алгоритм выборки IksSafonsky Программирование и базы данных 2 07-12-2004 20:01
Создание сложной выборки из MySQL Vlad Drakula Вебмастеру 13 19-06-2004 10:22
Разные учетные записи-разные IP (WinXP) ILion Сетевые технологии 1 28-05-2003 10:48




 
Переход