Есть такой запрос:
$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['Город']. - работало?


Как в SQL запросе получить значение поля связи.
Автор TelecomMedia, 14 сент. 2018 12:15
Сообщений в теме: 4
#1
Отправлено 14 Сентябрь 2018 - 12:15
#2
Отправлено 14 Сентябрь 2018 - 15:39
В поле связи хранится id связанной записи, а не отображаемое значение. Соответственно и сравнивать надо с $line['ID'].
Если же вы так сравниваете 2 поля связи (т.е. Город - это тоже поле связи), то тут также надо обращаться к ID, только из связанной записи - $line['Город']['ID']
Если же вы так сравниваете 2 поля связи (т.е. Город - это тоже поле связи), то тут также надо обращаться к ID, только из связанной записи - $line['Город']['ID']
#3
Отправлено 14 Сентябрь 2018 - 15:55
Нет, Город - список.
И как нам тогда сравнить поле связи, в котором название города задано как ID(f15581) и Город - который является списком?
И как нам тогда сравнить поле связи, в котором название города задано как ID(f15581) и Город - который является списком?
#4
Отправлено 14 Сентябрь 2018 - 16:37
Поясните точней, с какой таблицей связано поле f15581. Если с текущей - то соответственно сравниваете с $line['ID']. Если же это не связанные таблицы, то одним запросом это не сделать, разве только сложным. Либо делать два запроса: вначале надо получить id записи из таблицы связи поля связи f15581 с таким же значением города что и у $line['Город'] и соответственно подставлять уже его вместо $line['Город'].
#5
Отправлено 14 Сентябрь 2018 - 16:58
Да, я тоже пришел к варианту с 2 запросами. Спасибо.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных