Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Уместно ли использование UNION? / 12 сообщений из 12, страница 1 из 1
02.06.2015, 17:27:22
    #38974517
Sergenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
Доброго времени суток!
1) Есть числовой массив, в котором значения это id - разделов.

2) Нужно вывести в поток, данные из разделов и связанных с ними других таблиц.
В цикле (через foreach) перебираю массив, и делаю запросы к базе.

Фигня в том, что id в массиве лежат в разном порядке, а мне нужно чтобы работал order by.

3) Нашел пока одно решение, но оно какое-то наверное не очень...
Вообщем, при переборе, формирую на php подзапросы и объединяю их через union. order by работает.
Но, что не нравится. Если вывести, весь код, такая портянка получается (в каждом подзапросе еще разные inner join - ы, условия).

4) В мануале указывается, что объединить можно два и более. Но в моем случае, это может быть 100, 200 подзапросов.
Дичь какая-то...

Пожалуйста, посоветуйте что лучше в моем случае?
...
Рейтинг: 0 / 0
02.06.2015, 17:56:37
    #38974556
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
SergeniusДичь какая-то...действительно дичь
вы бы хоть структуру обрисовали, к которой запросы делаете
ну и что хотите получить, тоже не мешало бы объяснить понятным языком, лучше всего на примере входных и выходных данных
...
Рейтинг: 0 / 0
02.06.2015, 18:10:26
    #38974576
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
Sergeniusпосоветуйте что лучше в моем случае?
Забыть свою процедурно-ориентированную хрень и сделать как положено. Загрузить весь массив во временную таблицу на сервер и одним запросом получить нужные данные в нужной сортировке.
...
Рейтинг: 0 / 0
02.06.2015, 18:42:39
    #38974606
Sergenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
tanglir,
чтобы лучше понять, попробую упростить донельзя.

$arr = array(256, 34, 86, 5, 347);

foreach ($arr as $id)
{
("select `price`, `name` from table `tab_unit` where `id` = `".$id."`");
}

Вопрос, каким образом здесь можно перебрать чтобы order by `name` ?
...
Рейтинг: 0 / 0
02.06.2015, 18:44:46
    #38974609
Sergenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
Akina,
не совсем понял вас. Результаты перебора массива записать в отдельную таблицу?
...
Рейтинг: 0 / 0
02.06.2015, 18:49:15
    #38974614
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
SergeniusВопрос, каким образом здесь можно перебрать чтобы order by `name` ?
AkinaЗагрузить весь массив во временную таблицу на сервер и одним запросом получить нужные данные в нужной сортировке.
SergeniusРезультаты перебора массива записать в отдельную таблицу?нет, сам массив загнать в таблицу (временную) и потом выбрать всё одним запросом
...
Рейтинг: 0 / 0
02.06.2015, 18:54:54
    #38974619
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
Sergeniusне совсем понял вас
Создаёте временную таблицу.
Заносите туда все свои элементы массива.
Запросом получаете сразу все данные в нужном виде.
Удаляете временную таблицу.
Всё.
...
Рейтинг: 0 / 0
02.06.2015, 19:12:43
    #38974636
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
Sergeniustanglir,
чтобы лучше понять, попробую упростить донельзя.

$arr = array(256, 34, 86, 5, 347);

foreach ($arr as $id)
{
("select `price`, `name` from table `tab_unit` where `id` = `".$id."`");
}

Вопрос, каким образом здесь можно перебрать чтобы order by `name` ?
Код: sql
1.
2.
3.
4.
SELECT `price`, `name` 
FROM mytable `tab_unit`
WHERE `id` IN (256, 34, 86, 5, 347)
ORDER BY `name`
...
Рейтинг: 0 / 0
02.06.2015, 19:47:42
    #38974660
Sergenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
miksoft, вы заставили меня ощутить ослом))))
Спасибо большое за подсказку. Оказывается так все просто.
...
Рейтинг: 0 / 0
02.06.2015, 19:52:26
    #38974662
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
Sergeniusmiksoft, вы заставили меня ощутить ослом))))Извините, не имел такой цели :)

Кстати, подозреваю, что список этих id происходит из каких-то других SQL-запросов. Тогда можно было бы их объединить в один.
...
Рейтинг: 0 / 0
02.06.2015, 20:26:23
    #38974680
Sergenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
miksoft,
я правда до сих пор, под впечатлением. Вчера весь вечер убил, голову сломал, монтируя монстра с union. А тут увидел Ваш пост...и е-мое...Так просто??????

Вы действительно правы, id приходят из других sql - запросов. Объединить наверное не получится, эти id (строка из базы) я преобразую в массив, потом сливаю с другим массивом полученным из файла, ну а потом уже...дальше Вы уже видели.

Еще раз, снимаю шляпу.
...
Рейтинг: 0 / 0
03.06.2015, 07:56:38
    #38974829
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уместно ли использование UNION?
Sergeniusid приходят из других sql - запросов. Объединить наверное не получится, эти id (строка из базы) я преобразую в массив, потом сливаю с другим массивом полученным из файла
Вот ведь дурь-то - волочь все данные на клиента, чтобы потом опять втюхать их SQL-серверу...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Уместно ли использование UNION? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]