Перейти к содержимому


Фильтр с использованием внешних данных


Сообщений в теме: 4

#1 rayman

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 29 Апрель 2014 - 16:28

Не знаю как правильно объяснить, но попробую.
Например, у меня есть данные по разным городам и сотрудники разных городов, которые должны видеть только свои данные, конкретно - заказы.
Разделяются они по ID города из другой таблицы. С пользователями выкрутился, добавив сотруднику дополнительное поле города.
Дёргая на главном экране данные обычными прямыми запросами в базу данные отфильтровать проблемы нет.

Но как только пытаюсь сделать фильтр средствами самой клиентской базы, получается затык. Выходит что мне надо получить данные из сотрудника, потом каким-то образом вставить их в "Режим эксперта" в редактировании фильтра, что по сути невозможно. Как быть?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 29 Апрель 2014 - 16:53

Можно попробовать сделать через сложный запрос, возвращающий из таблицы сотрудников город по текущему пользователю, и затем подставляя его в условие. Почитайте про сложные запросы в MySQL.

#3 rayman

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 29 Апрель 2014 - 17:01

Понятно, спасибо. Сложный запрос с JOIN в принципе возможен наверное, но нужно же в SELECT тоже поля подставить, а там как я понимаю идёт блок для WHERE? Верно?

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 29 Апрель 2014 - 17:05

Нет, JOIN там не нужен, речь как раз чисто про WHERE, когда поле в условии приравнивается к возвращающему запросом результату, например `Город` = (SELECT `f111` FROM ....... )

#5 rayman

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 30 Апрель 2014 - 08:10

Спасибо, попробуем.
UPD
Да, попробовали, всё работает через сложные запросы. Может кому-то пригодится.

Сообщение отредактировал rayman: 30 Апрель 2014 - 08:42






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных