sql >> Database >  >> RDS >> Mysql

MySQL verliet outer join met where-clausule - retourneer ongeëvenaarde rijen

Ja. De where clausule verandert de linker outer join in een inner join.

Waarom? De waarde van pe.pqid is NULL (zoals pe.uid ) als er geen overeenkomst is. Dus de vergelijking in de where clausule mislukt (bijna alle vergelijkingen met NULL return NULL wat als onwaar wordt beschouwd).

De oplossing is om de vergelijking te verplaatsen naar de on clausule:

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



  1. Hoe alle rijen met een NULL-waarde in een kolom te vinden met PostgreSQL

  2. Weken tussen twee datums

  3. Hulp bij PHPExcel-bibliotheek en mySQL-gegevens uit een tabel

  4. Spring Batch:kon identiteit niet verhogen; geneste uitzondering is com.microsoft.sqlserver.jdbc.SQLServerException:ongeldige objectnaam 'BATCH_JOB_SEQ'?