Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Сортировка одинаковых дат дает разный результ (ВебМан) 13/06/2013 - 13:00:07
      Re: Сортировка одинаковых дат дает разный результ (Akina) 13/06/2013 - 13:35:33
      Re: Сортировка одинаковых дат дает разный результ (ВебМан) 13/06/2013 - 14:08:13
      Re: Сортировка одинаковых дат дает разный результ (Akina) 13/06/2013 - 14:22:18

> Original message text:
> From: ВебМан - 13/06/2013 - 13:00:07
> Subject:Сортировка одинаковых дат дает разный результ
> -----------------
> Добрый день!
>
> Столкнулся с проблемой - не могу добиться нужного вывода, когда timestamp совпадают:
>
> create table a (id int, date timestamp, wid int, index(id), index(date), index(wid));
> create table b (wid int, name text, index(wid));
> insert into a values (9,"2013-06-13 10:21:43", 12), (9,"2013-06-13 10:21:43",6), (9,"2013-06-13 11:32:40",6), (9,"2013-06-13 11:32:40",3);
> insert into b values (3,"Сидоров Сидор Сидорович"), (6,"Иванов Иван Иванович"), (12,"Андреев Андрей Андреевич");
>
> Задача: вывести инфо из таблицы "а" + "б" точно в заданной последовательности, согласно таблице "а" (причем сделать это одним запросом)
>
> mysql> select * from a;
> +------+---------------------+------+
> | id | date | wid |
> +------+---------------------+------+
> | 9 | 2013-06-13 10:21:43 | 12 |
> | 9 | 2013-06-13 10:21:43 | 6 |
> | 9 | 2013-06-13 11:32:40 | 6 |
> | 9 | 2013-06-13 11:32:40 | 3 |
> +------+---------------------+------+
>
>
> mysql> select t1.*,t2.name from a t1,b t2 where t1.id=9 and t2.wid=t1.wid order by t1.date;
> +------+---------------------+------+--------------------------+
> | id | date | wid | name |
> +------+---------------------+------+--------------------------+
> | 9 | 2013-06-13 10:21:43 | 6 | Иванов Иван Иванович |
> | 9 | 2013-06-13 10:21:43 | 12 | Андреев Андрей Андреевич |
> | 9 | 2013-06-13 11:32:40 | 3 | Сидоров Сидор Сидорович |
> | 9 | 2013-06-13 11:32:40 | 6 | Иванов Иван Иванович |
> +------+---------------------+------+--------------------------+
> ^^^^^ mysql нарушает желаемый вывод и сортирует видимо по wid еще...
>
>
> А НУЖНО, ЧТОБЫ БЫЛО точно как в порядке добавления в таблице "a":
> +------+---------------------+------+--------------------------+
> | id | date | wid | name |
> +------+---------------------+------+--------------------------+
> | 9 | 2013-06-13 10:21:43 | 12 | Андреев Андрей Андреевич |
> | 9 | 2013-06-13 10:21:43 | 6 | Иванов Иван Иванович |
> | 9 | 2013-06-13 11:32:40 | 6 | Иванов Иван Иванович |
> | 9 | 2013-06-13 11:32:40 | 3 | Сидоров Сидор Сидорович |
> +------+---------------------+------+--------------------------+
>
> P.S. необходимо одним запросом отправить на сервер!!!
>


From: Akina - 13/06/2013 - 14:22:18
Subject:Сортировка одинаковых дат дает разный результ
-----------------
Вы просто не учли, что, в отличие от файловых БД (скажем, DBF) и близких к ним по сути источников данных (скажем, таблица Excel) в таблицах баз данных отсутствует понятие "порядок записей" до тех пор, пока не указана сортировка. Плюс то, что сказано выше - случай совпадения ключей сортировки.

Большинство СУБД при таких условиях (неопределённая или недоопределённая сортировка) возвращают записи в том порядке, в каком они следуют согласно кластерному, первичному либо первому индексу. При полном отсутствии индексов кластерным можно считать псевдоиндекс порядкового местоположения записи в файле БД. А при наличии более чем одной таблицы в списке источников данных всё становится совершенно неопределённым.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
42683



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |