|
|
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! 1) Есть числовой массив, в котором значения это id - разделов. 2) Нужно вывести в поток, данные из разделов и связанных с ними других таблиц. В цикле (через foreach) перебираю массив, и делаю запросы к базе. Фигня в том, что id в массиве лежат в разном порядке, а мне нужно чтобы работал order by. 3) Нашел пока одно решение, но оно какое-то наверное не очень... Вообщем, при переборе, формирую на php подзапросы и объединяю их через union. order by работает. Но, что не нравится. Если вывести, весь код, такая портянка получается (в каждом подзапросе еще разные inner join - ы, условия). 4) В мануале указывается, что объединить можно два и более. Но в моем случае, это может быть 100, 200 подзапросов. Дичь какая-то... Пожалуйста, посоветуйте что лучше в моем случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 17:27:22 |
|
||
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
SergeniusДичь какая-то...действительно дичь вы бы хоть структуру обрисовали, к которой запросы делаете ну и что хотите получить, тоже не мешало бы объяснить понятным языком, лучше всего на примере входных и выходных данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 17:56:37 |
|
||
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
Sergeniusпосоветуйте что лучше в моем случае? Забыть свою процедурно-ориентированную хрень и сделать как положено. Загрузить весь массив во временную таблицу на сервер и одним запросом получить нужные данные в нужной сортировке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 18:10:26 |
|
||
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
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` ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 18:42:39 |
|
||
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
Akina, не совсем понял вас. Результаты перебора массива записать в отдельную таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 18:44:46 |
|
||
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
SergeniusВопрос, каким образом здесь можно перебрать чтобы order by `name` ? AkinaЗагрузить весь массив во временную таблицу на сервер и одним запросом получить нужные данные в нужной сортировке. SergeniusРезультаты перебора массива записать в отдельную таблицу?нет, сам массив загнать в таблицу (временную) и потом выбрать всё одним запросом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 18:49:15 |
|
||
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
Sergeniusне совсем понял вас Создаёте временную таблицу. Заносите туда все свои элементы массива. Запросом получаете сразу все данные в нужном виде. Удаляете временную таблицу. Всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 18:54:54 |
|
||
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 19:12:43 |
|
||
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
miksoft, вы заставили меня ощутить ослом)))) Спасибо большое за подсказку. Оказывается так все просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 19:47:42 |
|
||
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
Sergeniusmiksoft, вы заставили меня ощутить ослом))))Извините, не имел такой цели :) Кстати, подозреваю, что список этих id происходит из каких-то других SQL-запросов. Тогда можно было бы их объединить в один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 19:52:26 |
|
||
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
miksoft, я правда до сих пор, под впечатлением. Вчера весь вечер убил, голову сломал, монтируя монстра с union. А тут увидел Ваш пост...и е-мое...Так просто?????? Вы действительно правы, id приходят из других sql - запросов. Объединить наверное не получится, эти id (строка из базы) я преобразую в массив, потом сливаю с другим массивом полученным из файла, ну а потом уже...дальше Вы уже видели. Еще раз, снимаю шляпу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 20:26:23 |
|
||
|
Уместно ли использование UNION?
|
|||
|---|---|---|---|
|
#18+
Sergeniusid приходят из других sql - запросов. Объединить наверное не получится, эти id (строка из базы) я преобразую в массив, потом сливаю с другим массивом полученным из файла Вот ведь дурь-то - волочь все данные на клиента, чтобы потом опять втюхать их SQL-серверу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2015, 07:56:38 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38974662&tid=1833119]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 336ms |

| 0 / 0 |
