2016-01-03 3 views
3

У меня есть таблица базы данных для пользователя моего сайта, эта таблица дает каждому пользователю user_id.Как слить данные массива из базы данных

Используя нормализацию, я связал пользователя с группой с таблицей user_group, включая user_id и group_id, чтобы связать пользователя с группой.

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

Я пытаюсь вывести пользователей на свою веб-страницу в списке рядом с именем группы, а не ее идентификатором.

Я думал об использовании цикла foreach для этого, но данные должны были бы попасть в один массив? Я не знаю, как я возьму user_id, узнаю, с какой группой он связан, выясните, с каким именем группы был сопряжен идентификатор, а затем добавьте это в массив с именами и сможете отображать название группы next к имени пользователя, используя foreach.

Спасибо за любую помощь.

+0

Используйте LEFT JOIN в своем SQL Xlause. – Terminus

ответ

2

Если я понимаю вас правильно, вы хотите объединить данные пользователей с группой, чтобы показать детали пользователя с их именем группы.

Попробуйте это:

select u.*,g.*,ug.* from users u 
left join user_group ug on u.user_id=ug.user_id 
left join `group` g on ug.group_id=g.group_id; 

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

+0

Это вернет массив с пользователями и их соответствующими group_id, если они находятся в группе. Есть ли способ, с помощью которого можно использовать только SQL, и найти имя_группы из таблицы групп на основе идентификатора группы, который я только что добавил в массив пользователей? Надеюсь, это имеет смысл ... –

0

Я не понимаю, почему нужно левое соединение. Должно быть регулярное соединение, если он не хочет отображать пользователей, у которых нет групп.

Кстати, это прекрасный пример того, что должно быть сделано в БД с выбором. Вытягивать все из этих таблиц и пытаться сортировать их в java - это не очень хорошая идея. Возможно, я прочитал это сообщение неправильно.

+0

Я использую php not java –

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