id|group_id|text|text_type_id
1|1|москва|5
2|2|орел|5
3|1|уфа|5
4|2|уфа|5
5|1|синий|6
6|1|красный|6
select
group_id,
group_concat(text SEPARATOR ",") as text,
group_concat(distinct text_type_id SEPARATOR ",") as text_type_id
from index_1
Group by
group_id,
text_type_id
group_id|text|text_type_id
1|москва,уфа,синий,красный|5,6
2|орел,уфа|5
Нужно вывести групп_ид, где (text=Москва и text_type_id=5) и (text=Уфа и text_type_id=5) и (text=Синий и text_type_id=6), и - читать как У ЭТОЙЖЕ ГРУПП_ИД СУЩЕСТВУЕТ
Если искать по "И", то найдутся только документы группы, в которых есть и тот и другой текст