Извлечение имени родительской категории

DrunkPacifist

Новичок
Здравствуйте!
В процессе изменения структуры таблиц слегка залип в попытке сделать грамотный запрос. В общем, суть такова:
есть одна таблица

как лучше всего составить запрос, чтобы получить список (не древовидный) и для каждой категории получить имя ее родителя?
экономика
экономика->микроэкономика
экономика->макроэкономика
политология
компьютеры
компьютеры->программирование
Заранее благодарен!
 

Sulik

Новичок
SELECT `table`.*, `parent`.`cat_name` AS `parent_name`
FROM `table`
LEFT JOIN `table` AS `parent` ON `parent`.`id` = `table`.`parent_id`
GROUP BY `table`.`id`
 

DrunkPacifist

Новичок
А зачем нужно прописывать алиас `parent`.`cat_name` AS `parent_name`, если `parent_name` нигде не используется, а таблицы `parent` не существует - есть только `table`?
 

DrunkPacifist

Новичок
upd. пытался пересобрать запрос сам, в итоге получился ровно такой же) заодно понял, зачем здесь был alias. И до этого я не думал что JOIN можно применять к одной и той же таблице.
PHP:
SELECT books_cat.*,  
parent.cat_name AS parent_name FROM books_cat 
LEFT OUTER JOIN books_cat AS parent ON parent.id = books_cat.parent_id
object(stdClass)#1 (4) {
["cat_name"]=>
string(28) "макроэкономика"
["id"]=>
string(1) "5"
["parent_id"]=>
string(2) "11"
["parent_name"]=>
string(18) "Экономика"
}
Большое спасибо!
 

zerkms

TDD infected
Команда форума
upd. пытался пересобрать запрос сам, в итоге получился ровно такой же) заодно понял, зачем здесь был alias. И до этого я не думал что JOIN можно применять к одной и той же таблице
Его можно применять к чему угодно, даже к вложенному запросу
 
Сверху