2015-02-26 3 views
0

У меня есть запрос с получением всех пользователей и всех user_items. Но когда я группируюсь по user.id, он показывает только 1 элемент. Когда я удаляю группу, она отображает все элементы, но повторяет информацию.sql group, не показаны все результаты

я хочу его, как этот

Dan | Laptop 
     Car 
     Bike 
     Shed 

Mik | Computer 
     House 

Это SQL

SELECT items.name, users.username 
FROM users 
INNER JOIN items 
ON items.userid = users.id 
GROUP BY users.id 
+1

Это, вероятно, то, что вы должны обрабатывать в своем коде представления/отчета, а не на сервере. – jpw

+0

как, всего 2 петли foreach или что-то еще? –

+0

Да, может быть, что-то в этом роде; это будет зависеть от того, какое программное обеспечение/код и т. д. вы используете для представления данных - некоторые системы отчетности могут делать это автоматически. – jpw

ответ

0

Вы могли бы попробовать использовать GROUP_CONCAT() функцию:

SELECT u.username, GROUP_CONCAT(i.name) 
FROM users u 
JOIN items i ON i.userid = u.id 
GROUP BY u.id; 

Он будет отображать немного по-другому, но является очень похоже на то, что вы пытаетесь выполнить.

0

группа обоими, так что вы не свернуть все элементы для каждого пользователя, а не простофили в пунктах

SELECT items.name, users.username 
FROM users 
INNER JOIN items 
ON items.userid = users.id 
GROUP BY users.id, items.name 

остальное будет обрабатываться в коде презентации.

+0

попробовал группировать оба, но его не работал –

+0

Какой результат? как именно «это не сработало»? – user3012759

Смежные вопросы