Задать вопрос

Как выбрать все категории статьи?

Добрый день. Как в бд нужно хранить категории статьи, чтобы потом одним запросом получить что-то вроде title description category: catName1-id, catName2-id
А еще лучше, чтобы получаемое поле category было массивом, дабы не парсить строку. Может быть тип данных какой-то? Думал, что буду писать через запятую айди, а потом IN'ом получать нужные категории. Вопрос только как это все поместить в одну результирующую строку с названием, описанием, категориями статьи?
  • Вопрос задан
  • 2420 просмотров
Подписаться 4 Оценить 1 комментарий
Решения вопроса 1
morozovdenis
@morozovdenis
GROUP_CONCAT() вам поможет

blog.nagaychenko.com/2010/06/15/%D1%80%D0%B0%D0%B1...

пользоваться так:

TABLE POST {id, text}
TABLE CATEGORY {id, name}
TABLE CATEGORY_POST {id, category_id, post_id}

SELECT POST.id, POST.text, GROUP_CONCAT(CATEGORY.name SEPARATOR ', ') AS categories FROM POST
JOIN CATEGORY_POST ON (POST.id = CATEGORY_POST.post_id)
JOIN CATEGORY ON (CATEGORY.id = CATEGORY_POST.category_id)
GROUP BY POST.id, POST.text


но в чём проблема просто join-ить и потом в php циклом пройти и собрать в нужную структуру?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
walkman7
@walkman7
только 2 запроса
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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