Я создал представление, в котором должны быть только те строки, в которых поле даты находится между диапазонами. Когда я использую php-страницу для извлечения данных с некоторыми условиями, она не возвращает результатов. Но если я использую «select * from», через phpMyAdmin он возвращает все данные, а затем, если я пытаюсь снова извлечь с моей страницей php (тот же код с условиями, которые я пробовал ранее), он работает правильно. У меня сложилось впечатление, что представление обновляется только в том случае, если я выполняю запрос "select * from". Имейте в виду, что это представление имеет только 4 строки для целей тестирования.
Мое представление: (поля agendadoEm и agendadoPara имеют тип datetime)
CREATE VIEW vw_Agendamento AS (
SELECT agendamentos.id as id, agendamentos.userid as userid, agendamentos.paciente as paciente,agendamentos.agendadoEm as agendadoEm, agendamentos.agendadoPara as agendadoPara,
agendamentos.confirmado as confirmado, agendamentos.notificada as notificada,usuarios.contaTipo as contaTipo, profissionais.profissao as profissao
FROM agendamentos
LEFT JOIN usuarios ON usuarios.id=agendamentos.userid
LEFT JOIN profissionais ON profissionais.userid=agendamentos.userid
WHERE (agendamentos.confirmado=0 AND TIMESTAMPDIFF(MINUTE,agendamentos.agendadoEm,NOW())<35) OR
(agendamentos.confirmado=1 AND TIMESTAMPDIFF(SECOND,NOW(),agendamentos.agendadoPara)>1));
Запрос, который я выполняю на своей странице php:
SELECT vw_Agendamento.id as id, vw_Agendamento.userid as userid,
vw_Agendamento.paciente as paciente,vw_Agendamento.agendadoPara as agendadoPara,usuarios.nome as nome,
usuarios.contaTipo as contaTipo, profissionais.sexo as sexo, profissionais.profissao as profissaoId,
tipoProfissionalPF.tipo as profissao,tipoProfissionalPF.urlprefix as urlprefix, tipoProfissionalPJ.tipo as estabelecimento,
tipoProfissionalPJ.urlprefix as clinprefix,empresaDados.nomeFantasia as nomeFantasia
FROM vw_Agendamento
LEFT JOIN usuarios ON usuarios.id=vw_Agendamento.userid
LEFT JOIN profissionais ON profissionais.userid=vw_Agendamento.userid
LEFT JOIN empresaDados ON empresaDados.userid=vw_Agendamento.userid
LEFT JOIN tipoProfissionalPF ON tipoProfissionalPF.id=profissionais.profissao
LEFT JOIN tipoProfissionalPJ ON tipoProfissionalPJ.id=empresaDados.tipoProfissionalPJ
WHERE vw_Agendamento.paciente=? AND vw_Agendamento.confirmado=0
Не имеет значения, сколько раз я выполняю этот запрос, он не возвращает никаких результатов. Но после "select * from vw_Agendamento" я открываю ту же самую страницу php, и она правильно выбирает данные. Ты хоть представляешь, что происходит?