Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сортировка в join запросе 
:(
    Опции темы
realPROme
  Дата 9.7.2009, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вроде ничего сложного, но что-то как в тупик попал
есть таблицы t1, t2, t3 и т.д.
в них есть различные столбики с информацией, которую нам нужно выбрать, отсортировав по значениям соотв. столбиков в каждой таблице - sort1, sort2, sort3 и т.д.
т.е. запрос там типа
Код

SELECT * FROM t1 INNER JOIN t2 ON 1 INNER JOIN t3 ON 1 ... ORDER BY t1.sort1, t2.sort2, t3.sort3 ...

проблема в том, что результат сортируется сначала по sort1, потом по sort2, по sort3 и т.д., а нужно так, чтоб при сортеровки эти поля были равноправны, т.е. если есть

t1
sort1 ------ blablabla1
1 ------ ...data1.1...
2 ------ ...data1.2...
3 ------ ...data1.3...

t2
sort2 ------ blablabla2
100 ------ ...data2.1...
4 ------ ...data2.2...
200 ------ ...data2.3...

t3
sort3 ------ blablabla3
300 ------ ...data3.1...
1 ------ ...data3.2...
400 ------ ...data3.3...

надо не

1 ------ ...data1.1...
2 ------ ...data1.2...
3 ------ ...data1.3...
+
4 ------ ...data2.2...
100 ------ ...data2.1...
200 ------ ...data2.3...
+
1 ------ ...data3.2...
300 ------ ...data3.1...
400 ------ ...data3.3...


а вот так:

1 ------ ...data1.1...
1 ------ ...data3.2...
2 ------ ...data1.2...
3 ------ ...data1.3...
4 ------ ...data2.2...
100 ------ ...data2.1...
200 ------ ...data2.3...
300 ------ ...data3.1...
400 ------ ...data3.3...

вроде доступно объяснил суть проблемы smile 
PM MAIL   Вверх
youri
Дата 9.7.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а что содержится в таблицах, полях?
PM   Вверх
realPROme
Дата 9.7.2009, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



youri, инфа всякая... а какая разница? smile

Добавлено через 1 минуту и 5 секунд
соль в том, что в каждой табличке есть столбик (sort1, sort2, sort3 и т.д. для таблиц t1, t2, t3 и т.д. соотв.), по которому и нужно выполнять сортировку
PM MAIL   Вверх
Ипатьев
Дата 9.7.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



Разница такая, что задача уж больно странная. И, возможно, она решается другим запросом. 
PM MAIL   Вверх
solenko
Дата 9.7.2009, 14:19 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 7
Всего: 67



realPROme, ваш запрос не может дать такого результата как вы приводите в примерах. Определитесь что вам нужно получить -- join или union


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
youri
Дата 9.7.2009, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Ипатьев @  9.7.2009,  14:18 Найти цитируемый пост)
И, возможно, она решается другим запросом

или с другой организацией бд
PM   Вверх
realPROme
Дата 9.7.2009, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(solenko @  9.7.2009,  14:19 Найти цитируемый пост)
ваш запрос не может дать такого результата как вы приводите в примерах. Определитесь что вам нужно получить -- join или union

вообще никак?
union же будет создавать повышенную нагрузку при большом количестве таблиц?

Добавлено через 4 минуты и 23 секунды
solenko, упс, забыл smile
там все намного сложней, проблема просто с сортировкой, там inner-ы с реальными условиями, а не "ON 1"

Добавлено через 5 минут и 11 секунд
Цитата(Ипатьев @  9.7.2009,  14:18 Найти цитируемый пост)
возможно, она решается другим запросом

каким? smile
мне кажется что все несложно... туплю чего-то))

Это сообщение отредактировал(а) realPROme - 9.7.2009, 14:37
PM MAIL   Вверх
Ипатьев
Дата 9.7.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



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

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

Учитывая пассаж про юнион, и про большое количество таблиц, я даже предположить боюсь, что там на самом деле.
PM MAIL   Вверх
skyboy
Дата 9.7.2009, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



realPROme, затык начинается с того уровня, что при соединении через JOIN поля в принципе не могут быть "равноправными при сортировке".
либо у тебя однотипные данные в разных таблицах, и тебе надо использовать UNION для обеъдинения данных с единой структурой. пример: товары разного типа, хранящиеся в разных таблицах, но из которых охота сделать один прайс-лист с сортировкой по цене.
либо у тебя разноплановые данные и желание отсортировать по разным полям как по одному - непонятный каприз, не более. к примеру, чтоб значения номера парспорта было отсортировано наравне с фамилией.
PM MAIL   Вверх
realPROme
Дата 9.7.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Ипатьев @  9.7.2009,  15:03 Найти цитируемый пост)
Странный диалог.
- какую задачу ты решаешь? 
- а какая разница?
- возможно, она решается другим способом.
- каким?

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


просьба, кто может, помочь с решением поставленного вопроса, не более
давайте просто считать, что вопрос чисто ради интереса задан - сможет ли кто-то найти его решение - да или нет

Это сообщение отредактировал(а) realPROme - 9.7.2009, 15:30
PM MAIL   Вверх
youri
Дата 9.7.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



уже ответили
p.s. да, я невнимательно прочитал вопрос

Это сообщение отредактировал(а) youri - 9.7.2009, 23:10
PM   Вверх
realPROme
  Дата 10.7.2009, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



спасибо, народ... странно, конечно, что нет обобщенной сортировки по нескольким рядкам, честно, очень странно, просто не сталкивался с этим раньше smile 
пока еще буду копать в этой стороне...
PM MAIL   Вверх
youri
Дата 10.7.2009, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(realPROme @  10.7.2009,  00:00 Найти цитируемый пост)
обобщенной сортировки по нескольким рядкам

а это как?
PM   Вверх
skyboy
Дата 10.7.2009, 09:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(realPROme @  9.7.2009,  23:00 Найти цитируемый пост)
странно, конечно, что нет обобщенной сортировки

две записи:
Цитата

column0    column1   column2
      101          1               2
       304         2               1

и в каком порядке должна их вернуть "обобщенная сортировка" по столбцам column1 и column2?
как можно, не представляя логики в своей голове, требовать что-то от машины?
PM MAIL   Вверх
realPROme
  Дата 10.7.2009, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



skyboy, а что тут такого?
это ж, имхо, то же самое, что если сортировать таблицу по неуникальному полю, в котором есть дубли...
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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