Ребят как в sql выбрать строки, которые содержат сразу несколько тегов?
Имеем две таблицы:
FruitsTABLE
id name
1 яблоко
2 банан
3 апельсин
FruitTagTABLE
fruit tag
1 сладкий
1 круглый
2 сладкий
3 сладкий
3 круглый
У меня получилось сделать запрос фруктов, которые содержат какой-либо 1 тег:
SELECT DISTINCT fruitsTABLE.* FROM FruitsTABLE JOIN FruitTagTABLE ON FruitsTABLE.id = FruitTagTABLE.id WHERE FruitTagTABLE.tag = 'сладкий' OR FruitTagTABLE.tag = 'круглый'
Т.е. объединяем две таблицы через JOIN, находим в каких фруктах есть 'сладкий' или 'круглый' и избавляемся от дублей через DISTINCT.
А как мне получить только фрукты, которые одновременно И сладкие И круглые?
На самом деле у меня 3 таблицы, поэтому вместо "круглый" "сладкий" там только ID тегов указаны, т.е. 1 и 2.
Предполагаю такой вариант, объединение через GROUP_CONCAT для получения ячейки "1,2", а потом запрос какой-то чтобы искать где содержится у фруктов в такой ячейке и "1", и "2", только где гарантия, что он не найдёт мне фрукты с тегами "1,22".
В общем думается мне что как-то попроще можно решить этот вопрос. Не подскажете в каком направлении копать?