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


Как в SQL запросе получить значение поля связи.


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

#1 TelecomMedia

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

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

Отправлено 14 Сентябрь 2018 - 12:15

Есть такой запрос:

$sqlQuery = "SELECT count(*) as count FROM ".DATA_TABLE."711 WHERE f15881 >= '".$r_monday." 00:00:00' AND f15881 <= '".$r_sday." 23:59:00' AND f15551 = 'SMS (Б)' AND status='0' AND f15581 = '".$line['Город']."'";

Где f15581 - поле связи.
Такой запрос не выполняется, как нам получить непосредственно значение этого поля, что бы сравнение f15581 = '".$line['Город']. - работало?

#2 CbCoder

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

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

Отправлено 14 Сентябрь 2018 - 15:39

В поле связи хранится id связанной записи, а не отображаемое значение. Соответственно и сравнивать надо с $line['ID'].

Если же вы так сравниваете 2 поля связи (т.е. Город - это тоже поле связи), то тут также надо обращаться к ID, только из связанной записи - $line['Город']['ID']

#3 TelecomMedia

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

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

Отправлено 14 Сентябрь 2018 - 15:55

Нет, Город - список.
И как нам тогда сравнить поле связи, в котором название города задано как ID(f15581) и Город - который является списком?

#4 CbCoder

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

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

Отправлено 14 Сентябрь 2018 - 16:37

Поясните точней, с какой таблицей связано поле f15581. Если с текущей - то соответственно сравниваете с $line['ID']. Если же это не связанные таблицы, то одним запросом это не сделать, разве только сложным. Либо делать два запроса: вначале надо получить id записи из таблицы связи поля связи f15581 с таким же значением города что и у $line['Город'] и соответственно подставлять уже его вместо $line['Город'].

#5 TelecomMedia

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

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

Отправлено 14 Сентябрь 2018 - 16:58

Да, я тоже пришел к варианту с 2 запросами. Спасибо.





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

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