Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: выборка за раз данных с разных запросов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
DlTA
Отправлено: 31 Июля, 2018 - 15:03:04
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




переделываю фильтр на сайте
и очень хотелось бы ускорить обработку, нынче имеем много разных параметров, и для каждого параметра делаем отдельный запрос для получения списка в select [длина, ширина, ... и что-то еще].

вопрос: а можно как-то объединить запрос для получения всего за раз?
а в результате получить:
[длина]=>1
[длина]=>2
[длина]=>3
[высота]=>1
[высота]=>3
[высота]=>5
[ширина]=>3
[ширина]=>10
 
 Top
Vladimir Kheifets
Отправлено: 31 Июля, 2018 - 16:34:11
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




DlTA пишет:
переделываю фильтр на сайте
и очень хотелось бы ускорить обработку, нынче имеем много разных параметров, и для каждого параметра делаем отдельный запрос для получения списка в select [длина, ширина, ... и что-то еще].

вопрос: а можно как-то объединить запрос для получения всего за раз?
а в результате получить:
[длина]=>1
[длина]=>2
[длина]=>3
[высота]=>1
[высота]=>3
[высота]=>5
[ширина]=>3
[ширина]=>10

Добрый день!
Если я Вас правильно понял и у Вас устроено так:
Спойлер (Отобразить)
то просто можно сделать один запрос
Спойлер (Отобразить)
Удачи!
 
 Top
DlTA
Отправлено: 31 Июля, 2018 - 16:38:48
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




выборка у меня не с одной таблицы, их там с 10-ток

от товара, идет выборка по наличию, а там идет выборка по таблице по размеру, высоте, ...
 
 Top
Vladimir Kheifets
Отправлено: 01 Августа, 2018 - 07:33:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




DlTA пишет:
выборка у меня не с одной таблицы, их там с 10-ток
от товара, идет выборка по наличию, а там идет выборка по таблице по размеру, высоте, ...

Добрый день!
Если таблиц несколько, то можно писать название таблицы и название поля, например,
SELECT table1.length, table2.height, table2.width... и испльзовать в запросах JOIN
Посмотрите, пример запроса из четырёх таблиц здесь
http://forum.php.su/topic.php?fo...92123#1532692123
К сожалению, для более детального ответа не достаточно информации.
Удачи!

(Отредактировано автором: 01 Августа, 2018 - 07:36:37)

 
 Top
DlTA
Отправлено: 01 Августа, 2018 - 07:52:24
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




JOIN у меня есть, я же говорю что в запросе выбираются до 10 таблиц
 
 Top
Vladimir Kheifets
Отправлено: 01 Августа, 2018 - 15:38:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




DlTA пишет:
JOIN у меня есть, я же говорю что в запросе выбираются до 10 таблиц

а в начале Вы написали:
Цитата:
для каждого параметра делаем отдельный запрос....
.............
вопрос: а можно как-то объединить запрос для получения всего за раз?

Простите, не могли бы Вы показать хотябы один Ваш запрос с JOINT, который выбирает из 10 таблиц один параметр и могли бы написать что-то про эти таблицы.
 
 Top
DlTA
Отправлено: 01 Августа, 2018 - 21:44:35
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




для примера

Спойлер (Отобразить)

и это у меня выгрузка списка id товаров, проверяется привязка к разделу, подразделу, и ... много чего еще
(Добавление)
для примера, попробовал объединить 2 таблицы
CODE (SQL):
скопировать код в буфер обмена
  1. (
  2. SELECT  `sizes`.`rus` ,  `sizes`.`id`
  3. FROM  `sizes`
  4. WHERE  `sizes`.`id` =2
  5. )
  6. UNION (
  7.  
  8. SELECT  `colors`.`id` ,  `colors`.`rus`
  9. FROM  `colors`
  10. WHERE  `colors`.`id` =1
  11. )
  12.  

это работает, НО ЭТО ПРАВИЛЬНО??
 
 Top
Vladimir Kheifets
Отправлено: 03 Августа, 2018 - 08:25:54
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




DlTA пишет:
для примера

Спойлер (Отобразить)

и это у меня выгрузка списка id товаров, проверяется привязка к разделу, подразделу, и ... много чего еще
(Добавление)
для примера, попробовал объединить 2 таблицы
CODE (SQL):
скопировать код в буфер обмена
  1. (
  2. SELECT  `sizes`.`rus` ,  `sizes`.`id`
  3. FROM  `sizes`
  4. WHERE  `sizes`.`id` =2
  5. )
  6. UNION (
  7.  
  8. SELECT  `colors`.`id` ,  `colors`.`rus`
  9. FROM  `colors`
  10. WHERE  `colors`.`id` =1
  11. )
  12.  

это работает, НО ЭТО ПРАВИЛЬНО??

Добрый день!
Если это работает, то правильно, но Вам "хотелось бы ускорить обработку".
Не уверен в том, что в Вашем случае это решение оптимальное.
Ваш запрос с UNION создаёт временную таблицу и на больших базах данных может работать медленнее, чем альтернативные решения, например, с JOINT, если это возможно.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB