Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL ляво външно съединяване с клауза where - връща несъвпадащи редове

да where клауза превръща лявото външно съединение във вътрешно съединение.

Защо? Стойността на pe.pqid е NULL (както е pe.uid ), когато няма съвпадение. Така че сравнението в where клаузата е неуспешна (почти всички сравнения с NULL върне NULL което се счита за невярно).

Решението е да преместите сравнението към on клауза:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Бутон за връщане назад за уебсайт с една страница

  2. Версия срещу номер на разпространение на MySQL

  3. MySQL грешка № 121

  4. Rails:Принудително принуди празен низ към NULL в базата данни

  5. Създаване на комбинации от таблица/колони с помощта на SQL Query или Laravel SQL Query Builder