SELECT t1.title AS lev1,t2.title AS lev2, t3.title as lev3
FROM test_menu AS t1
JOIN test_menu AS t2 ON t2.parent = t1.id
LEFT JOIN test_menu AS t3 ON t3.parent = t2.id
WHERE t1.id = null
Вернет правильную табличку для одного пнукта(категории меню).
Теперь була. А как сделать так, что бы вернуть все категории?
т.е. что бы как-то так..
SELECT t1.title AS lev1,t2.title AS lev2, t3.title as lev3
FROM test_menu AS t1
JOIN test_menu AS t2 ON t2.parent = t1.id
LEFT JOIN test_menu AS t3 ON t3.parent = t2.id
WHERE t1.title in ( SELECT title FROM test_menu WHERE ISNULL(parent) LIMIT 0,1);
т.е. выстроить ттабличку уровней для каждой категории одним запросом
Спустя 1 минута, 24 секунды (25.10.2010 - 12:20) vital написал(а):
А, да. СОбственно табличка на которой эксперементирую
CREATE TABLE `test_menu` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`parent` INT(10) UNSIGNED NULL DEFAULT NULL,
`title` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_bin',
PRIMARY KEY (`id`)
)
Спустя 9 минут, 21 секунда (25.10.2010 - 12:30) Invis1ble написал(а):
vital
Чесно говоря, мои знания о SQL оставляют желать лучшего, но вроде это
Чесно говоря, мои знания о SQL оставляют желать лучшего, но вроде это
Цитата |
WHERE ISNULL(parent) |
правильно так
WHERE `parent` IS NULL
по сути вопроса, к сожалению ничего сказать не могу..
Спустя 22 минуты, 59 секунд (25.10.2010 - 12:53) vital написал(а):
Цитата |
правильно так |
Это вот где эта написано?)
В чем разница?) Мне пользовать функцию нравится больше.
Спустя 28 минут, 19 секунд (25.10.2010 - 13:21) SlavaFr написал(а):
соедини просто т1 а т2 не JOIN a LEFT JOIN
Спустя 3 часа, 7 минут, 47 секунд (25.10.2010 - 16:29) vital написал(а):
Цитата |
соедини просто т1 а т2 не JOIN a LEFT JOIN |
Нет. Не поможет.
Спустя 3 часа, 51 минута, 13 секунд (25.10.2010 - 20:20) Invis1ble написал(а):
vital
Я же написал
Я же написал
Цитата |
Чесно говоря, мои знания о SQL оставляют желать лучшего |
и что
Цитата |
вроде ... правильно |

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."
Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar