Можете ставить, пока времени нет доделать! но в ближайшем будущем собираюсь выполнить до конца)
Добрый день, ждать допиленную версию или эту можно ставить?)
Ага так и сделал. CONCAT("count:'", CONVERT(IFNULL(P.count, 0) USING utf8),"'}")
Спасибо, Николай. Опять выручил.
Вы в скрипт vapor.php зайдите и закоментируйте исключения. По умолчанию юзеры исключаются.
А вот так не получается?: SELECT N.id, N.name,
CONCAT(
"[",
GROUP_CONCAT(
CONCAT("{shop:'",CONVERT(S.name USING utf8),"',"),
CONCAT("count:'", if(P.count > 0, CONVERT(P.count USING utf8), 0),"'}")
)
,"]"
) as data
FROM modx_products_nomenclature N
LEFT JOIN modx_shops S ON S.active = 1
LEFT JOIN modx_warehouse_products P ON P.product_id = N.id and S.warehouse_id = P.warehouse_id
GROUP BY N.id
Сам запрос SELECT N.id, N.name,
CONCAT(
"[",
GROUP_CONCAT(
CONCAT("{shop:'",CONVERT(S.name USING utf8),"',"),
CONCAT("count:'",CONVERT(P.count USING utf8),"'}")
)
,"]"
) as data
FROM modx_products_nomenclature N
LEFT JOIN modx_shops S ON S.active = 1
LEFT JOIN modx_warehouse_products P ON P.product_id = N.id and S.warehouse_id = P.warehouse_id
GROUP BY N.id возвращает вот такое id 1
name G1
data [{shop:'A', count:'10'}]
.....
id 3
name G1
data [{shop:'A', count:'10'}, {shop:'B', count:'10'}] хотелось бы конечно что бы в дата в случае если количество 0 то писало {shop: 'B', count: '0'}
Здесь вся веселость в том, что на выходе получается матрица.Если бы количество складов было четко определенным, все решилось бы одним запросом с несколькими открытыми соединениями (LEFT JOIN, RIGHT JOIN). Здесь же, поскольку количество складов не определено, остается только руками формировать массив.