Я немного новичок в php / mysql, поэтому я уверен, что что-то упустил.Этот подход, вероятно, тоже не самый лучший.
У меня есть следующие таблицы
Таблица: unit_members Поля: id, unit_id, person_id, primary
Таблица: people Поля:id, name, rank_id
Таблица: ранги Поля: id, name, rank
Таблица: единицы измерения Поля: id, name, rank
Я пытаюсь отобразить каждыйединица и люди в каждой единице и имеют людей, отсортированных по рангу, который является целевым полем.Это кажется простым, но я не могу заставить людей упорядочить по rank.rank.
Вот мой запрос:
'SELECT unit_members.person_id, GROUP_CONCAT(persons.id) as personid,
GROUP_CONCAT(persons.name) as name, persons.rank_id, unit_members.unit_id,
units.id as unitid, units.name as unit,
GROUP_CONCAT(DISTINCT units.codename) as squad, ranks.id as rankid,
GROUP_CONCAT(ranks.rank) as rankrank
FROM unit_members, ranks, persons, units
where persons.rank_id = ranks.id
and units.id = unit_members.unit_id
and persons.id = unit_members.person_id
group by units.codename
ORDER BY units.rank asc, ranks.rank asc';
Мне кажется, что Орден здесь делаетне влияет на Group_Concat, поэтому я предполагаю, что мне нужно как-то заказать Group_Concat, прежде чем он перейдет в массив.Массив, кажется, упорядочивает его по идентификатору человека.
Любая помощь будет принята с благодарностью.Заранее спасибо.