2016-10-18 3 views
0

スケジュールに利用可能な時間を持つために開始時刻と終了時刻を確認する必要があります。しかし、開始時刻と終了時刻の両方の列を含めるとエラーになります。サブクエリからの時間範囲にMysqlエラーが発生しました

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

Error: #1241 - Operand should contain 1 column(s)

答えて

-1
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') 
+0

心はdownvoteを説明するか? –

0
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を言うためのより良い方法です。

どちらのカラムも、agendamentoと同じリーチで取得できます。

関連する問題