Не уверен, что заголовок объясняет ситуацию правильно, но я постараюсь сделать все возможное, чтобы объяснить здесь.MySQL group_concat и гнездо с другим group_concat
У меня есть таблица с 3 полями связана с другими таблицами, и я хочу, чтобы получить все строки, сгруппированные следующим образом:
item_id, user_id, group_id
1 2 3
2 2 3
3 4 5
4 2 4
В моем запросе я хочу в разделенных запятой переформатируйте items_id, сгруппированный по group_id у меня также есть некоторые дополнительные условия на ИНЕК, поэтому внутреннее соединение
что я могу сделать, как с этим запросом
"SELECT
GROUP_CONCAT(DISTINCT A.item_id) AS ids
FROM tableA A
INNER JOIN tableB B ON(tableA.id = tableB.id)
WHERE xxxxx
GROUP BY A.group_id
"
Позже я могу цикл я Результаты е и используя запятую для внутреннего цикла каждый идентификатор в результате
Но я также хочу, чтобы сгруппировать его по user_id для того, чтобы сделать что-то вроде этого
foreach(query_results....){
foreach(group_id....){
foreach(item_id....){
// Display info
}
}
}
Любые идеи по этому вопросу?
Если вы используете PHP, то я не могу понять, d используйте GROUP_CONCAT вообще! – Strawberry
@Strawberry, что вы имеете в виду? – DannyG
Ну, почему бы просто не вернуть упорядоченный массив и не позволить PHP переходить через это? На мой взгляд, если вы не используете его в сочетании с какой-либо другой функцией агрегации, в SQL нет проблем, для которых GROUP_CONCAT является решением, особенно в том, что касается PHP. – Strawberry