Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выбор данных с проверкой в других таблицах 
:(
    Опции темы
xoslv
Дата 4.9.2008, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 12.1.2007

Репутация: нет
Всего: нет



Таблица ордер:
Код

+---------+-------+----------------+-----------------+-------------+-----------+-----------+------
| ord_id  | cl_id  |    date1        |      date2       |dateMore  | coment  | oper_id  |ppr  
|    51     | 508   | 2008-04-08  | 0000-00-00   |      0         |              |  2           |**** 
|    52     | 101   | 2008-04-08  | 0000-00-00   |      0         |              |  2           |**** 
|    53     | 495   | 2008-04-08  | 0000-00-00   |      0         |              |  4           |**** 
|    54     | 102   | 2008-04-08  | 0000-00-00   |      0         |              |  2           |**** 


Таблица container:
Код

+---------+-------+--------+-------+-----+------+------+------+------+------+----------+
| cont_id | as_id | ord_id | cl_id | gid | oper | ord1 | ord2 | ord3 | ord4 | as_price |
+---------+-------+--------+-------+-----+------+------+------+------+------+----------+
|  185007 |    17 |  16066 |   101 |  34 |    9 | 10   |         |           |          | 0.3305   |
|  185008 |    22 |  16066 |   101 |  34 |    9 | 5     |         |           |          | 0.1525   |
|  185009 |    23 |  16066 |   101 |  34 |    9 | 10   |         |           |          | 0.2119   |
|  185010 |    25 |  16066 |   101 |  34 |    9 | 5     |         |           |          | 0.1525   |
|  185011 |    26 |  16066 |   101 |  34 |    9 | 3     |         |           |          | 0.2966   |
+---------+-------+--------+-------+-----+------+------+------+------+------+----------+


Объясняю, один клиент делает заказ на много позиций, все они сохраняются в БД.
Делая заказ в следующий раз, оператору надовидеть, чего и сколько заказывалось в прошлый раз.

Асортимент для заказа выберается одним запросом из нескольких таблиц:
Код

SELECT p.id, p.aid, a.a_name, a.count, p.price FROM prices p, assort a WHERE p.aid=a.a_id and p.gid='$client_group' and a.a_status='1';

после этого, разбераю масив через while и нет проблем.

Каким образом в этот запрос, можно вставит запрос на выбор данных из колонки "container.ord1" относительно последнего заказа данного клиента, чтобы потом через тотже while вывести соответствующее значение напротив нужного товара?

Если делать для каждой позиции отдельный запрос, очень сильно увеличивается время ответа, что заставляет оператора дольше пронимать заказ.


--------------------
Не всё то маздай, что синее!
PM MAIL ICQ   Вверх
SneG0K
Дата 4.9.2008, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Код
SELECT p.id, p.aid, a.a_name, a.count, p.price FROM prices p, assort a WHERE p.aid=a.a_id and p.gid='$client_group' and a.a_status='1' UNION SELECT `ord1` FROM `container`WHERE /* данные относительно заказа

PM WWW Skype   Вверх
xoslv
Дата 4.9.2008, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 12.1.2007

Репутация: нет
Всего: нет



А в данном случае ненадо прописывать общие колонки? Относительно которых, будет выбераться содержимое?
Например:
Код

SELECT p.id, p.aid, a.a_name, a.count, p.price FROM prices p, assort a 
WHERE p.aid=a.a_id and p.gid='$client_group' and a.a_status='1' 
UNION 
SELECT `ord1` FROM `container`WHERE a.a_id=container.as_id

--------------------
Не всё то маздай, что синее!
PM MAIL ICQ   Вверх
SneG0K
Дата 4.9.2008, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Ну это как тебе будет удобно. UNION обьединяет несколько запросов в один. Эта возможность, если я не ошибаюсь, появилась с четвертой версии MySQL. Но имеет некоторые ограничения. 
PM WWW Skype   Вверх
xoslv
Дата 4.9.2008, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 12.1.2007

Репутация: нет
Всего: нет



А возможнали такая конструкция?
Код

SELECT p.id, p.aid, a.a_name, a.count, p.price, (SELECT `ord1` FROM `container`WHERE a.a_id=container.as_id...) AS order FROM prices p, assort a 
WHERE p.aid=a.a_id and p.gid='$client_group' and a.a_status='1' 


На сколько правильна такая конструкция и будет ли она работать? 
--------------------
Не всё то маздай, что синее!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0857 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.