使用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
Run Code Online (Sandbox Code Playgroud)
新尝试:(不能很好地工作)它仅限于受影响的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
Run Code Online (Sandbox Code Playgroud)
这里出了什么问题?有人知道结果改变的原因吗?
非常感谢任何信息!
两个查询之间的区别在于新查询atend_os也在访问表.因此,当过滤掉时,其中任何值atendimento.cliente都不存在cliente.id.
一个INNER JOIN要求的值在两个表中存在,或该行被丢弃.
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |