Пример:
Таблица: коробка
boxID color
01 red
02 blue
03 green
Таблица: коробка имеет
boxID has
01 apple
01 pear
01 grapes
01 banana
02 lime
02 apple
02 pear
03 chihuahua
03 nachos
03 baby crocodile
Я хочу запросить содержимое каждого поля и вернуть таблицу с каждым идентификатором, цветом и столбцом, объединяющим содержимое каждого поля, поэтому я использую:
SELECT box.boxID, box.color,
GROUP_CONCAT(DISTINCT boxHas.has SEPARATOR ", ") AS contents
FROM box
LEFT JOIN boxHas ON box.boxID=boxHas.boxID
WHERE boxHas.has IN ('apple','pear')
GROUP BY box.boxID
ORDER BY box.boxID
и я получаю следующую таблицу результатов:
boxID color contents
01 red apple, pear
02 blue apple, pear
Мой вопрос к вам: почему в нем не указаны ВСЕ значения has
в столбце contents
? Почему мое WHERE
утверждение также обрезает мое GROUP_CONCAT
?
Таблица, которую я собирался получить:
boxID color contents
01 red apple, banana, grapes, pear
02 blue apple, lime, pear
Хотя я хочу ограничить свои результаты boxID
на основе оператора WHERE
, я не хочу ограничить поле contents
для допустимых полей. : - /
Помощь