Есть таблица с объявлениями, для каждого объявления есть несколько категорий, все категории хранятся в одной таблице. У таблицы объявлений и категорий есть связующая. Как получить нужные объявления и категории к ним в один запрос?
К примеру:
Таблица объявлений Ads содержит поля:
id
title
...
Таблица категорий Categories:
id
title
parent_id
Таблица связующая Ads_categories:
id
ads_id
categories_id
Максимум, чего я добился: выбирается объявление с одной категорией, и дублируются, пока не выведет остальные категории этого объявления, и так для каждого объявления.
Дополнение. Я использовал join, и мой запрос похож на тот, что написал товарищ ниже, и вот что я получаю:
Array
(
[0] => Array
(
[ads] => Array
(
[id] => 3
[title] => Продам гараж
[description] => ...
[cities_id] => 468
[users_id] => 12
[price] => 120000
[datetime] => 2016-01-31 04:12:07
)
[ads_categories] => Array
(
[id] => 1
[ads_id] => 3
[categories_id] => 2
)
[categories] => Array
(
[id] => 2
[title] => Недвижимость
[parent_id] => 0
)
)
[1] => Array
(
[ads] => Array
(
[id] => 3
[title] => Продам гараж
[description] => ...
[cities_id] => 468
[users_id] => 12
[price] => 120000
[datetime] => 2016-01-31 04:12:07
)
[ads_categories] => Array
(
[id] => 2
[ads_id] => 3
[categories_id] => 16
)
[categories] => Array
(
[id] => 16
[title] => Квартиры
[parent_id] => 2
)
)
[2] => Array
(
[ads] => Array
(
[id] => 3
[title] => Продам гараж
[description] => ...
[cities_id] => 468
[users_id] => 12
[price] => 120000
[datetime] => 2016-01-31 04:12:07
)
[ads_categories] => Array
(
[id] => 3
[ads_id] => 3
[categories_id] => 101
)
[categories] => Array
(
[id] => 101
[title] => Куплю
[parent_id] => 16
)
)
)
Вот меня интересует, можно ли получить один массив Ads в котором будут сразу все три категории?
Вам нужно изучить использование оператора join Для вашего случая запрос будет выглядеть приблизительно так:
SELECT
*
FROM
Ads
LEFT JOIN Ads_categories ON ads_id=Ads.id
LEFT JOIN Categories ON Categories.id=categories_id
WHERE
categories_id=X
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытаюсь написать выполнение консольной команды после нажатия на кнопкуВот что получилось
Такая проблема: COOKIE почему-то хранятся только в пределах одной папкиНапример, на сайте перешел в папку site
Пользователь заходит на главный сайт (xxxru), на нем он регистрируется и открывает виртуальную компанию - после регистрации ему должен выделяться...