Я немного новичок в php/mysql, поэтому я уверен, что что-то упускаю. Этот подход, вероятно, тоже не самый лучший.
У меня есть следующие таблицы
Таблица: unit_members Поля: id, unit_id, person_id, первичный
Таблица: лица Поля: id, name, rank_id
Таблица: ранги Поля: id, имя, ранг
Таблица: юниты Поля: id, name, rank
Я пытаюсь отобразить каждую единицу и людей в каждой единице и отсортировать людей по рангу, который является полем int. Это кажется простым, но я не могу заставить людей упорядочиваться по рангу. рангу.
Вот мой запрос:
'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, прежде чем он попадет в массив. Массив, кажется, упорядочивает его по идентификатору человека.
Любая помощь будет принята с благодарностью. Заранее спасибо.