在mysql中创建查询困难

在mysql中创建查询困难,mysql,Mysql,我有这张桌子: 任务类型: Id, Descricao 17, Depilação Buço 18, Depilação Pernas 19, Depilação Orelhas 20, Depilação Barba 21, Cortar Unhas Pés 22, Cortar Unhas Mãos 28, Esvaziar Saco Urina 29, Hidratação 36, Medicação 37, Deitar Utente 47, Levar Roupa para Lavan

我有这张桌子:

任务类型:

Id, Descricao
17, Depilação Buço
18, Depilação Pernas
19, Depilação Orelhas
20, Depilação Barba
21, Cortar Unhas Pés
22, Cortar Unhas Mãos
28, Esvaziar Saco Urina
29, Hidratação
36, Medicação
37, Deitar Utente
47, Levar Roupa para Lavandaria
48, Arrumar Lixo
73, Encaminhamento de Utente para Deitar (Pós Almoço)
77, Fazer Cama
然后是用户表:

codigo, nome
2,      Pedro
6,      Paulo Moura
3,      Bruno
4,      ANTONIO
现在,我有了一个表,在该表中我注册了任务,在这里我已经进行了查询,返回了当天执行的任务:

SELECT raddb.Tarefa.codigo, Colaborador, FimTarefa, Ala, nome, raddb.TipoTarefa.Id, Descricao

FROM raddb.Tarefa LEFT OUTER JOIN raddb.TipoTarefa ON raddb.TipoTarefa.Id = raddb.Tarefa.tarefa  

LEFT OUTER JOIN raddb.quartos ON raddb.quartos.Codigo = raddb.Tarefa.codigo

LEFT OUTER JOIN raddb.Utente ON raddb.Utente.quarto = raddb.quartos.Quarto AND raddb.Utente.Cama = raddb.quartos.Cama

WHERE raddb.TipoTarefa.Id IN ('17','18','19','20','21','22','28','29','36','37','47','48','73','77') AND DATE(FimTarefa) = DATE(NOW())
其中返回以下内容:

codigo, Colaborador, FimTarefa, Ala, nome, Id, Descricao
150001, 28, 2019-07-31 11:30:08, ALA A, Pedro, 28, Esvaziar Saco Urina
110001, 33, 2019-07-31 12:10:27, ALA A, Pedro, 36, Medicação
110001, 33, 2019-07-31 13:16:27, ALA A, Pedro, 21, Cortar Unhas Pés
在最后的
查询中
只向Peter返回当天执行的三项任务,即任务28、36和21。
所以我想要的是,不是返回今天执行的任务,而是返回今天未执行的任务,在本例中是任务17、18、19、20、22、29、37、47.48、73、77。

您不应该在where条件下使用left join table column作为ainner join。。。将这些条件移到相关左联接表的ON子句中

  SELECT raddb.Tarefa.codigo
    , Colaborador
    , FimTarefa
    , Ala
    , nome
    , raddb.TipoTarefa.Id
    , Descricao
  FROM raddb.Tarefa 
  LEFT OUTER JOIN raddb.TipoTarefa ON raddb.TipoTarefa.Id = raddb.Tarefa.tarefa  
      AND raddb.TipoTarefa.Id IN ('17','18','19','20','21','22','28','29','36','37','47','48','73','77')
  LEFT OUTER JOIN raddb.quartos ON raddb.quartos.Codigo = raddb.Tarefa.codigo
  LEFT OUTER JOIN raddb.Utente ON raddb.Utente.quarto = raddb.quartos.Quarto 
        AND raddb.Utente.Cama = raddb.quartos.Cama
  WHERE  DATE(FimTarefa) = DATE(NOW())

我有问题,我怀疑我不是那个理解查询逻辑和示例数据的人,因为除了查询使用西班牙/葡萄牙语作为表名之外,还有缺少的表接缝?其中示例表名为英文。这将返回相同的值,并返回所执行任务的数据。我要你把未完成的任务还给我