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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> две выборки из связанных таблиц 
V
    Опции темы
bars80080
Дата 21.11.2008, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



вот есть такая задача

есть две таблицы, условно назовём: 1. вольеры, 2. звери
они имеют поля id, name и status, плюс таблица зверей имеет id_vol в котором вносится идентификатор вольера в котором находится зверь
что такое статус? это активное состояние записи. т.е. если статус=1, то для вольеров это означает, что он закрыт для просмотра, а для зверей, что их типа нет (в лазарет положили)

значит что нужно? получить две выборки (в два массива) активных записей (status=0) и приэтом - для вольеров только тех, в которых есть активные звери, а для зверей только тех, которые находятся в активных вольерах

можно ли это сделать парочкой запросов или проще сделать две выборки и на пхп оттюжить?
правда, пока только перебор массива в массива приходит на ум с array_splice() пустых значений. что выглядит довольно уныло

спасибо
PM MAIL WWW   Вверх
teroni
Дата 21.11.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

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



Код

SELECT * FROM `zveri` JOIN `voliery`
ON `zveri`.`id_vol` = `voliery`.`id`
WHERE `zveri`.`status` = 0 AND `voliery`.`status` = 0

Это второй запрос. Полученные данные собираем в пхп. 
Активные вольеры в которых есть звери - получаем помощью array_unique id-шников вольеров из этого запроса.

Это сообщение отредактировал(а) teroni - 21.11.2008, 16:49
PM MAIL   Вверх
bars80080
Дата 21.11.2008, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



спасибо, работает так как надо, всё из одного запроса можно получить

сам по себе запрос не будет утяжелять систему?
/с трудом в таких вопросах ориентируюсь/

если делать индексы, то по каким полям?
PM MAIL WWW   Вверх
lelik133
Дата 21.11.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

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



индексы стоит сделать по полям по которым идет объединения таблиц `zveri`.`id_vol` и  `voliery`.`id`
PM ICQ   Вверх
bars80080
Дата 21.11.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



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


 




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


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

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