Результаты MySQL в виде запятой, разделенной предложением WHERE - PullRequest
0 голосов
/ 02 июня 2018

Это работает без моего условия WHERE, но как только я ищу определенный вкус, я получаю только этот вкус в результате, но я хочу получить все вкусы, которые принадлежат продукту.
У меня есть 2 таблицы(упрощенно):

продукты

| id | title          |  
| 1  | exampleProduct |  

вкусы

| taste_id | product_id | taste_name |  
|        1 |          1 | cherry     |  
|        2 |          1 | orange     |

Я хочумой результат будет:

| title          | tastes         |  
| exampleProduct | cherry, orange |  

Я уже пробовал эту команду SQL, но, похоже, она не работает:

SELECT products.title, GROUP_CONCAT(tastes.taste_name) as tastes   
FROM products 
JOIN tastes on products.id = tastes.product_id 
WHERE tastes.taste_name = "cherry" 
GROUP BY products.id

1 Ответ

0 голосов
/ 02 июня 2018

Полагаю, вам нужны все вкусы, когда "вишня" является одним из них.

Если это так, вам нужно провести сравнение после агрегации:

SELECT p.title, GROUP_CONCAT(t.taste_name) as tastes   
FROM products p JOIN
     tastes t
     ON p.id = t.product_id 
GROUP BY p.id
HAVING SUM(t.taste_name = 'cherry') > 0;
...