使用INNER JOIN有限制吗?

原始查询(工作正常)我受影响了77行

    SELECT atendimento.id, atendimento.responsavel, atendimento.ocorrencia,
           atendimento.idcontrato, cliente.nome as clinome, cliente.id as cliid,
           atendimento.d_ini, usuario.apelido, tipos.descricao, tipos.id as tip
      FROM atendimento
INNER JOIN cliente ON atendimento.cliente=cliente.id
INNER JOIN usuario ON atendimento.usuario=usuario.id
INNER JOIN tipos ON atendimento.status=tipos.id
     WHERE 1=1 AND (atendimento.status=10 OR atendimento.status=11)
  ORDER BY tipos.id, atendimento.d_ini ASC


新尝试:(效果不佳)仅限于受影响的17行。除了查询中仅返回的17行外,此处的结果相同。

    SELECT atendimento.id, atendimento.responsavel, atendimento.ocorrencia,
           atendimento.idcontrato, atend_os.protocolo, atend_os.tecnico,
           cliente.nome as clinome, cliente.id as cliid, atendimento.d_ini,
           usuario.apelido, tipos.descricao, tipos.id as tip
      FROM atendimento
INNER JOIN atend_os ON atendimento.id=atend_os.protocolo
INNER JOIN cliente ON atendimento.cliente=cliente.id
INNER JOIN usuario ON atendimento.usuario=usuario.id
INNER JOIN tipos ON atendimento.status=tipos.id
     WHERE 1=1 AND (atendimento.status=10 OR atendimento.status=11)
  ORDER BY tipos.id, atendimento.d_ini ASC


这是怎么了?有人知道结果为什么会改变吗?

非常感谢您提供任何信息!

最佳答案

尝试

 SELECT atendimento.id, atendimento.responsavel, atendimento.ocorrencia,
           atendimento.idcontrato, atend_os.protocolo, atend_os.tecnico,
           cliente.nome as clinome, cliente.id as cliid, atendimento.d_ini,
           usuario.apelido, tipos.descricao, tipos.id as tip
      FROM atendimento
INNER JOIN cliente ON atendimento.cliente=cliente.id
INNER JOIN usuario ON atendimento.usuario=usuario.id
INNER JOIN tipos ON atendimento.status=tipos.id
LEFT JOIN atend_os ON atendimento.id=atend_os.protocolo
     WHERE 1=1 AND (atendimento.status=10 OR atendimento.status=11)
  ORDER BY tipos.id, atendimento.d_ini ASC


看看有多少行具有atend_os.protocolo = NULL

10-07 17:26