Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL deixou a junção externa com cláusula where - retorna linhas não correspondidas


Sim. O where cláusula está transformando a junção externa esquerda em uma junção interna.

Por quê? O valor de pe.pqid é NULL (como é pe.uid ) quando não há correspondência. Portanto, a comparação no where cláusula falha (quase todas as comparações com NULL return NULL que é considerado falso).

A solução é mover a comparação para o on cláusula:
SELECT pq.id, pq.data, pe.data
FROM pq LEFT OUTER JOIN
     pe
     ON pq.id = pe.pqid and
        pe.uid='12345'
ORDER BY pq.id LIMIT 2