Yan-s,
сначала были выбраны ID
1,2,3
потом к ним JOIN доп. инфа(TEXT) в итоге получили, условно,
1
1
1
1
2
2
3
3
3
и вот теперь надо отсортировать их так, как я написал в вопросе
Ну так на глаз это в 1000 раз проще выполнить через PHP, просто перебираешь массив выбираешь элемент из массива, записываешь в новый массив, в старом удаляешь и ищешь новый элемент, больше чем старый, пару строчек кода.
А на SQL это разве что как то через UNION пытаться и то вряд ли (99.99%)
Это подойдёт только в каких-то очень частных случаях с маленьким количеством элементов, т.к. БД сделает намного эффективнее, чем код на PHP.
И вот это вот:
А на SQL это разве что как то через UNION пытаться и то вряд ли (99.99%)
не ответ на вопрос про SQL, а комментарий, причём довольно таки бесполезный.
Как я понимаю, ТС интересует "набивать корзины" по 1 значению из остатков. При отсутствии других полей сделать это не помогает и ORDER BY FIELD( ) Или помогает?
Вижу пока только вариант с временной таблицей. Надо одинаковые значения проиндексировать, дать каждому возрастающий индекс. И тогда помтом группировать по этим суб-индексам: 1, 1, 1, 1, 2, 2, 3, 3, 3
переделать в
1, 0
1, 1
1, 2
1, 3
2, 0
2, 1
3, 0
3, 1
3, 2
и потом группировать по второму индексу и сортировать по первым id