Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос с ветвлением 
V
    Опции темы
mzalutski
Дата 8.6.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет всем!

Имеется таблица `photo`. В ней принципиальные поля `photo_path`, `author`, `scope`.  Поле `scope` отвечает за видимость данного фото. Имеет тип ENUM('onlyme', 'all', 'friends'). Смысл последних думаю ясен. 'friends' указывает на другую таблицу `friend` с полями  `id_author`, `id_friend`. 

Необходимо вывести ряды в соответсвии со значениями `scope`, т.е. `scope` определяет вид запроса. Получается что вроде ветвления ( стандартного для алгоритмических языков). Возможно ли сделать нечто

Код

SELECT `photo_path`, `author

IF(`scope` =='friends')
// ограничение записей путем выборки тех записей которые удвлетворяют утверждению `user` в 

числе друзей у 'author'

IF (`scope` =='onlyme')
//ограничение записей путем выборки тех которые удвлетворяют утверждению `user` == 'author'

IF(`scope` == 'all')
// без модификаций



за один запрос?

Заранее благодарен.
PM MAIL ICQ   Вверх
muzer
Дата 8.6.2007, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Зависит от сложности описания остальных условий вашей выборки. В общем случае, это может быть такой вариант:

Код

SELECT * FROM ...
WHERE
(scope = 'friends' AND user IN (...)) OR (scope = 'onlyme' AND user = 'author') OR (scope = 'all')

PM WWW   Вверх
mzalutski
Дата 9.6.2007, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как просто, черт побери! Да... надо как-то менять мышление. 
Спасибо muzer! Репутации подбавить не могу, ибо зеленый я еще  smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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