2015-07-02 4 views
2

Извините за мой вопрос, я не знаю, как назвать этот вопрос простым способом.Получите categoryname и parentid и измените parentid на имя категории

Скажем, у меня есть стол и только одна таблица.

+----+----------+-----------+-----------+ 
| id | cat_name | cat_desc | parent_id | 
+----+----------+-----------+-----------+ 
| 1 | car  | some desc | null  | 
| 2 | foo  | 123  | 1   | 
| 3 | bar  | 2345  | null  | 
| 4 | android | hello  | 2   | 
+----+----------+-----------+-----------+ 

Получил результат следующим образом.

car ---> some desc ---> 
foo ---> 123 ---> 1 
bar ---> 2345 ---> 
android ---> hello ---> 2 

В этом нет ничего плохого. Но я не собираюсь показывать родительский идентификатор пользователю, я хочу показать родительский идентификатор как имя категории. Результат должен быть таким.

car ---> some desc ---> 
foo ---> 123 ---> car 
bar ---> 2345 ---> 
android ---> hello ---> foo 

это возможно? если да, пожалуйста, скажите мне, как это сделать. если нет, объясните, почему и дайте мне решение. спасибо ..

ответ

2

Вы можете сделать самостоятельное объединение своего стола, чтобы получить нужные результаты. Попробуйте этот запрос:

SELECT CONCAT(t1.cat_name, ' ---> ', t1.cat_desc, ' ---> ', IFNULL(t2.cat_name, '')) 
FROM table t1 INNER JOIN table t2 
ON t1.parent_id = t2.id 
Смежные вопросы