sql >> Database teknologi >  >> RDS >> Mysql

MySQL venstre ydre joinforbindelse med where-klausul - returner umatchede rækker

Ja. hvor klausulen gør den venstre ydre joinforbindelse til en indre joinforbindelse.

Hvorfor? Værdien af ​​pe.pqid er NULL (som det er pe.uid ), når der ikke er noget match. Så sammenligningen i where klausul mislykkes (næsten alle sammenligninger med NULL returner NULL som anses for falsk).

Løsningen er at flytte sammenligningen til on klausul:

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. php mysql viser resultater som rulleliste

  2. Sådan udtrækkes værdier fra kolonne og opdatere resultat i en anden kolonne

  3. Brug af UNION ALL i STUFF / XML Path

  4. Forståelse af 'tids'-lagerstørrelse i SQL Server