@dev400

Как сделать такой запрос?

Запрос выбирает все по урлу категории.
$sql = "SELECT * FROM `categories` WHERE `cat_url` = :category_url";


Структура таблицы `categories`

id | cat_name | cat_url | parent

Если parent 0, то категория корневая(родительская для кого то)

Не могу понять как сделать так: если parent не 0, то вывести в добавок информацию о родительской категории.
Получается нужно как то сделать условие, и выбирать 2 раза из одной таблицы.
  • Вопрос задан
  • 183 просмотра
Решения вопроса 1
qonand
@qonand
Software Engineer
SELECT cat1.id, cat1.cat_name, cat1.cat_url, cat1.parent, cat2.name as parent_name  
FROM `categories` AS cat1 
LEFT JOIN `categories` AS cat2 ON cat2.id = cat1.patent
WHERE cat1.`cat_url` = <значение>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Вам надо что-то типа:
SELECT * FROM `categories`
WHERE
IF (`cat_url` > 0, SELECT * FROM `table` )
GROUP BY...

Но повнимательнее с производительностью...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы