SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.02.2015 10:36:39

dmvlad19
Участник
Зарегистрирован: 19.02.2015
Сообщений: 2

Помогите плиз с запросом, сортировка по 2-м связанным полям

Есть запрос где каждая строка связана с другой столбиком id_parent и одинаковые id_parent отсортированы по полю sort. Нужно вывести сперва id_parent=0 с сортировкой sort, но не все с одинаковым id_parent, а внутри дочерние, у которых id_parent = текущей id.

Вот сама таблица
CREATE TABLE IF NOT EXISTS `tbl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` text NOT NULL,
  `id_parent` int(11) NOT NULL DEFAULT '0',
  `sort` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `id_parent` (`id_parent`),
  FULLTEXT KEY `name_main` (`title`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=112 ;

--
-- Дамп данных таблицы `tbl`
--

INSERT INTO `tbl` (`id`, `title`, `id_parent`, `sort`) VALUES
(19, 'Автомобили', 0, 67),
(25, 'Лада', 19, 7),
(27, 'Казань', 94, 4),
(30, 'Волга', 19, 2),
(59, 'Цвета', 0, 4),
(60, 'Красный', 59, 9),
(63, 'Синий', 59, 5),
(94, 'Города', 0, 3),
(109, 'Москва', 94, 1),
(110, 'ГАЗ 3102', 30, 0),
(111, 'ГАЗ 3110', 30, 0);

Делают так:

SELECT t1 . *
FROM  `tbl` t1
LEFT JOIN tbl t2 ON ( t2.id = t1.id_parent )
ORDER BY t1.id_parent, t1.sort, t2.id_parent, t2.sort

Но выводит только сортировку пока все id_parent =0 и т.д., т.е. по одному полю только корректно сортирует.

В идеале вывести так:
id title title_parent

т.е. результат должен быть такой
94 Города 0 3
-109 Москва 94 1
-27 Казань 94 4

59 Цвета 0 4
-63 Синий 59 5
-60 Красный 59 9

19 Автомобили 0 67
-30 Волга 19 2
--110 ГАЗ 3102 30 0
--111 ГАЗ 3110 30 0
-25 Лада 19 7

Неактивен

 

#2 19.02.2015 11:33:23

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Помогите плиз с запросом, сортировка по 2-м связанным полям

MySQL, к сожалению, не имеет встроенных средств для  рекурсивной работы. Так что одним простым запросом этого
не сделать. Почитайте http://webew.ru/articles/2080.webew


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 19.02.2015 11:41:36

dmvlad19
Участник
Зарегистрирован: 19.02.2015
Сообщений: 2

Re: Помогите плиз с запросом, сортировка по 2-м связанным полям

Большое спасибо за ответ!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson