Как сделать двойной запрос к БД с выборкой всех проектов для каждого пользователя?
Подскажите пожалуйста, как сделать выборку из двух таблиц одновременно что бы у меня были для каждого usera из таблицы users все его проекты из таблицы projects (проекты привязаны по id users)
Юра Комаров, чуть более сложный вариант, выбирает все категории товаров и добавляет к каждой категории ID всех товаров, которые входят в эту категорию. Вариант из "реальной жизни":
SELECT category.*, GROUP_CONCAT(product.id) AS product_ids
FROM category
LEFT JOIN product ON product.category_id = category.id
GROUP BY category.id
Юра Комаров, на уровне MySQL, я думаю, никак. По крайней мере, я не могу вспомнить ни одного подобного решения, которое бы позволило решить данный вопрос непосредственно.
Единственное, что мне приходит в голову "сходу", это примерно такой вариант:
Одним запросом через JOIN (или двумя запросами) выбрать все нужные данные из соотв. таблиц, а потом на клиенте их обработать нужным образом, преобразовав в объект.
Чисто гипотетически, такую же обработку можно попробовать сделать в хранимой процедуре (функции), в самой БД (эту процедуру соотв. нужно будет сначала написать), но я бы так делать не стал.
Ещё один вариант - сразу сохранять данные в БД в формате JSON (с MySQL v5.7+ появилась соотв. возможность), но, по ряду логических соображений - я бы так тоже не стал делать.