Mysql ошибка с диапазоном времени из подзапроса

Мне нужно проверить время начала и окончания, чтобы было время для планирования. Но выдает ошибку, когда я включаю столбцы времени начала и окончания.

SELECT horariosfixos 
FROM agendamento_horarios 
WHERE horariosfixos NOT IN(SELECT horaInicio,horaFim 
                           FROM agendamento 
                           WHERE data = '17-10-2016' 
                           ORDER BY horaInicio ASC)

Ошибка: #1241 - операнд должен содержать 1 столбец

2 ответа

Решение
SELECT horariosfixos 
FROM agendamento_horarios 
WHERE horariosfixos NOT IN(SELECT horaInicio 
                           FROM agendamento 
                           WHERE data = '17-10-2016' 
                           UNION 
                           SELECT horaFim as horaInicio
                           FROM agendamento 
                           WHERE data = '17-10-2016')
SELECT  ah.horariosfixos
    FROM  agendamento_horarios AS ah
    LEFT JOIN  agendamento AS a  ON a.data = '17-10-2016'
      AND  (      ah.horariosfixos = a.horaInicio
              OR  ah.horariosfixos = a.horaFim 
           )
    WHERE  a.id IS NULL
    ORDER BY  ah.horaInicio ASC

LEFT JOIN ... IS NULL это лучший способ сказать NOT INПо крайней мере, в этом случае.

Обе колонки могут быть получены одним и тем же охватом повестки дня.

Другие вопросы по тегам