Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запрос не возвращает все данные, хотя в таблице они есть 
:(
    Опции темы
Bulat
Дата 28.11.2006, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Ситуация такая, есть две таблицы softswitch, softswitch_new.
Таблица softswitch - предназначена для текущей работы, а softswitch_new создана мной по полной аналогии к softswitch, но для тестирования новых отредактированных скриптов. В обеих таблицах есть поле
Код

caller_IP int(10) unsigned NOT NULL default '0',

и в обеих таблицах это поле заполнено данными..... Однако по запросу
Код

select softswitch.caller_IP, softswitch_new.caller_IP, softswitch.source_info, softswitch_new.source_info, softswitch.dest_info, softswitch.end_time from softswitch, softswitch_new
where
softswitch.end_time = softswitch_new.end_time


по столбцу softswitch_new.caller_IP данные не возвращаются(точнее сказать не все), хотя в самой таблице они есть, чтот с утра в голову пока не приходить из-за чего это может быть

Код

CREATE TABLE softswitch (
  collector_id int(11) unsigned NOT NULL auto_increment,
  duration smallint(6) unsigned NOT NULL default '0',
  end_time datetime NOT NULL default '0000-00-00 00:00:00',
  caller_IP int(10) unsigned NOT NULL default '0',
  called_IP int(10) unsigned NOT NULL default '0',
  dest_info varchar(64) NOT NULL default '',
  source_info varchar(64) NOT NULL default '',
  operation_date datetime NOT NULL default '0000-00-00 00:00:00',
  operation_user varchar(127) default NULL,
  PRIMARY KEY  (collector_id),
  UNIQUE KEY call (caller_IP,called_IP,end_time,dest_info,source_info),
  KEY end_time (end_time)
) TYPE=MyISAM


Это сообщение отредактировал(а) Bulat - 28.11.2006, 09:28


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Rodman
Дата 28.11.2006, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Код

select softswitch.caller_IP, softswitch_new.caller_IP, softswitch.source_info, softswitch_new.source_info, softswitch.dest_info, softswitch.end_time from softswitch, softswitch_new


а так выдает все???
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Bulat
Дата 28.11.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Rodman, да я как-то не решаюсь такой запрос писать, не совсем грамотно получается smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
muzer
Дата 28.11.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 31.8.2006

Репутация: 30
Всего: 31



Цитата(Bulat @  28.11.2006,  10:27 Найти цитируемый пост)
по столбцу softswitch_new.caller_IP данные не возвращаются(точнее сказать не все), хотя в самой таблице они есть

1. Как вы узнали, что они есть?
2. Что значит "не все возвращаются"?


Цитата(Bulat @  28.11.2006,  12:05 Найти цитируемый пост)
да я как-то не решаюсь такой запрос писать, не совсем грамотно получается 

Не лучше ли тогда, раз вы любите грамотно, джойниться по PRIMARY KEY, а не по непонятному полю end_time? smile Дабы получать только потенциально одинаковые строки из двух таблиц, а не потенциально разные (если у двух строк одинаковое end_time, то получите декартово произведение..).
PM WWW   Вверх
Bulat
Дата 28.11.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



muzer, 
Цитата(muzer @  28.11.2006,  12:49 Найти цитируемый пост)
Не лучше ли тогда, раз вы любите грамотно

да а я дурак сижу тут и ничего не понимаю....... 
Эти две таблицы хоть и идентичны, но в одной из них(той что основной данные уже давно лежат и не только те которые я смотрю), а в тестовой, которую я создал, лишь очень маленькая часть и если вы об этом не подумали, то все же "иды" в обеих таблицах совпадать не будут, точнее данные в других столбцах, по этим идам, потому как в одной их уже до кучи.и кроме того.......
Мне нужно сравнить какие данные поступают в таблицу после редактирования некоторых скриптов, с теми которые поступали, при старых версиях скриптов, а 100% одиннаковые поля это только end_time, другие поля просто могут отличаться, конечно они не будут отличаться все в корне, но мне как раз и надо отследить где и как будут отличаться, дабы найти свои ошибки в отредактированной версии скриптов, если они есть. Это во-первых, так что давайте не будем здесь разводить бессмысленную демагогию как лучше всего, это я и так хорошо знаю, однако не всегда под стандарт возможно подогнать приходиться делать что-то не совсем стандартное

Может просто получиться банальная ситуция с тем что, в одну таблицу какая-то строка запишется а в одну нет и тогда просто произойдет смещение данных, и вообще куча всего может быть, да такие случаи не будут многоповторяющимися, но.....

Цитата(muzer @  28.11.2006,  12:49 Найти цитируемый пост)
Как вы узнали, что они есть?

Да потому как в я просто просмотрел содержимое таблицы, благо строк там не много, потому как я только провожу тесты smile
Цитата(muzer @  28.11.2006,  12:49 Найти цитируемый пост)
Что значит "не все возвращаются"?

из каких-то строк возвращаются из каких-то нет, где-то приходит то что должно приходить, то что есть в таблице, а где-то нет, у меня в конце концов не одна строка возвращается, вот во всех строках должны быть данные по этому полю, но в некоторых оно пустое


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Rodman
Дата 28.11.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Bulat, а так???
Код

SELECT softswitch.caller_IP, softswitch.source_info, softswitch.dest_info, softswitch.end_time, softswitch_new.caller_IP, softswitch_new.source_info, softswitch_new.dest_info, softswitch_new.end_time
FROM softswitch_new INNER JOIN softswitch ON softswitch_new.end_time = softswitch.end_time;

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Bulat
Дата 28.11.2006, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Цитата(Rodman @  28.11.2006,  13:18 Найти цитируемый пост)
Bulat, а так???

нет, я подобное, правда чуть по другому, уже писал, и твой запрос попробовал, такая же ситуация, возвращает ноль, где должно быть число, и даже не понятно почему он где-то возвращает то что надо, а где-то ноль smile , причем в остальных других столбцах все нрмально, все как пологается




--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Rodman
Дата 28.11.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



ну я уже тоже не могу сказать что случилось...

Попробуй конвертировать таблицы в какую нить другую СУБД и там попробуй запрос... если и в таком случае тот же бок, то бока в данных могут быть...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
igorold
Дата 28.11.2006, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 5
Всего: 17



а LEFT JOIN не пробовал?


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Rodman
Дата 28.11.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Цитата(igorold @  28.11.2006,  15:02 Найти цитируемый пост)
а LEFT JOIN не пробовал? 

смысл... ему же равные надо

PM MAIL WWW Skype GTalk YIM MSN   Вверх
muzer
Дата 28.11.2006, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 31.8.2006

Репутация: 30
Всего: 31



То есть если сделать 
Код

SELECT * FROM softswitch_new

,то данные одни, а если сделать
Код

SELECT n.* FROM softswitch_new n INNER JOIN softswitch USING(end_time)

, то данные другие? smile

Я вам не верю! smile Их может быть меньше или больше (в зависимости от наличия end_time в старой таблице и от повторяемости end_time в таблицах), но другими они быть не могут.
Выгрузите результаты обоих запросов в файлики и прикрепите их к сообщению. Данных вроде немного, вы говорите.
PM WWW   Вверх
Bulat
Дата 29.11.2006, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



muzer, а знаешь что самое интересное, вот если писать
Код

SELECT n.* FROM softswitch_new n INNER JOIN softswitch USING(end_time)


все в порядке, а если 
Код

SELECT softswitch.caller_IP, softswitch_new.caller_IP, softswitch.source_info, softswitch_new.source_info, softswitch.dest_info, softswitch.end_time FROM softswitch_new INNER JOIN softswitch USING(end_time)


то бишь указывать именно какие поля и из каких таблиц мне нужны, то опять старая история smile

Добавлено @ 08:50 
Цитата(muzer @  28.11.2006,  22:53 Найти цитируемый пост)
то данные другие?

и про то что другие не идет речь, я ж в названии написал, не возвращает все данные


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
muzer
Дата 29.11.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 31.8.2006

Репутация: 30
Всего: 31



Цитата(Bulat @  29.11.2006,  09:49 Найти цитируемый пост)
то бишь указывать именно какие поля и из каких таблиц мне нужны, то опять старая история

Ну не бывает так, поймите вы.
Скорее всего действительно есть в двух строках два однаковых end_time и возвращается четрые разных строки, две из которых "правильные", а две "неправильные". Или любой аналогичный случай (минимальное условие: в одной таблице end_time хотя бы в двух строках одинаковый).
PM WWW   Вверх
Bulat
Дата 29.11.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Цитата(muzer @  29.11.2006,  11:49 Найти цитируемый пост)
в одной таблице end_time хотя бы в двух строках одинаковый

такое есть, но таких раз два и обчелся, не более 5 совпадений, на 300 строк
Цитата(muzer @  29.11.2006,  11:49 Найти цитируемый пост)
Ну не бывает так, поймите вы.

А у меня бывает smile и таких строк в которых не возвращает, гораздо больше нежели случаи
Цитата(muzer @  29.11.2006,  11:49 Найти цитируемый пост)
Скорее всего действительно есть в двух строках два однаковых end_time и возвращается четрые разных строки, две из которых "правильные", а две "неправильные". 


Я понимаю что такого не должно быть, однако почему так получается до сих пор понять не могу smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.