Сортировка после получения данных из таблицы, как сделать?

Здравствуйте.

Есть два запроса к БД:

SELECT * FROM table1

SELECT * FROM table2

У этих двух таблиц много разных своих полей, но есть у каждой поле “position” в котором числа идут по порядку 1, 2, 3 и тд. Причём повторяющихся нет. То есть может идти 1) инфа из второй таблицы, потом два позиции из первой, потом 3 из второй и тп.

Подскажите, пожалуйста, как при выводе на страницу отсортировать вывод по “position”?
Насколько я понимаю это нужно делать уже после получения данных из обеих таблиц, тк обьединить их нельзя они совершенно разные и ко количеству столбцов и типу информации. Одинаковый только столбец “position” по которому и сортировка.
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 2
@BorisKorobkov Куратор тега PHP
Web developer
Можно UNION и ORDER BY position.
Разные поля надо привести к одинаковым с помощью AS. Например:
SELECT field1 AS table1field1, null AS table2field1 FROM table1 UNION ...


Но это говнокод, приводящий к полному сканированию обоих таблиц. Наймите нормального архитектора БД.
Ответ написан
@101-s
1 можно c помощью UNION выбрать только position
Затем создаете массив, где ключом = position, значение = 1 (первая табл) или 2 (вторая таблица)
После этого делаете выборку из таблиц
И через цикл выводите данные на страницу

2 Выборка из таблиц в массив
SELECT * FROM table1 order by position
SELECT * FROM table2 order by position
В цикле получаете первые значения, сравниваете, выводите ту запись, где position меньше, эту же запись с помощью array_shift() удаляете из нужного массива. и тд
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
25 окт. 2020, в 17:30
39999 руб./за проект
25 окт. 2020, в 17:16
150000 руб./за проект
25 окт. 2020, в 17:09
19999 руб./за проект