Таким образом, у меня есть структура продуктов / категорий / брендов, в которой категории продуктов определяются столбцом, содержащим список идентификаторов категорий, разделенных запятыми, то есть 101,105,108, а также столбец идентификаторов брендов.
Я пытаюсь получить список всех продуктов, заменить идентификаторы категорий на список названий категорий, разделенных запятыми, а также название бренда.
У меня работает следующий запрос:
SELECT
productid AS product_id,
prodname AS name,
prodcode AS code,
proddesc AS description,
prodprice AS price,
GROUP_CONCAT(c.catname)
FROM
products p,
categories c
WHERE
FIND_IN_SET(c.categoryid, p.prodcatids)
GROUP BY p.productid
Однако, когда я пытаюсь оставить соединение следующим образом, чтобы получить название бренда, оно ломается и говорит, что столбец p.prodbrandid не существует (он существует).
SELECT
productid AS product_id,
prodname AS name,
prodcode AS code,
proddesc AS description,
prodprice AS price,
b.brandname AS brand,
GROUP_CONCAT(c.catname)
FROM
products p,
categories c
LEFT JOIN
brands b ON p.prodbrandid = b.brandid
WHERE
FIND_IN_SET(c.categoryid, p.prodcatids)
GROUP BY p.productid
Любые указатели на то, что мне не хватает, будут с благодарностью!