Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mendapatkan hasil kueri dari tabel 2 db bahkan ketika tabel kedua tidak memiliki entri yang sesuai

OP berkata:

Masalahnya adalah where klausa memfilter kumpulan hasil, jadi pengujian Anda untuk req.status dari 2 atau 5 membuang apa pun di mana req.status adalah null karena tidak ada baris yang cocok dengan tabel applications .

Umum, teoretis (karena hanya implementasi sepele yang akan benar-benar melakukan hal seperti ini) urutan operasi untuk select pernyataannya adalah:

  • Hasilkan produk kartesius lengkap dari setiap tabel yang tercantum di from klausa.
  • Filter itu dengan menerapkan join yang ditentukan kriteria dan menghilangkan baris yang tidak lulus tes yang ditentukan.
  • Terapkan kriteria filter yang ditentukan di where klausa, menghapus baris yang tidak lulus tes yang ditentukan.
  • Urutkan hasil yang ditetapkan pada ekspresi yang ditentukan dalam group by klausa dan partisi hasil yang ditetapkan ke dalam grup.
  • Ciutkan setiap grup tersebut menjadi satu baris, hitung nilai semua fungsi agregat yang ditentukan.
  • Hapus semua kolom dari kumpulan hasil yang tidak terdaftar di select daftar kolom pernyataan.
  • Urutkan hasil akhir ini berdasarkan kolom/ekspresi yang ditentukan dalam order by klausa.

Anda dapat melakukan salah satu dari dua hal berikut:

  • ubah kueri Anda untuk menguji nullity:

    where...( req.status is null OR req.status in (2,5) )...
    
  • pindahkan tes ke req.status dengan kriteria bergabung:

    left join requests req on req.app_id =  apps.id
                          and req.uid    =  {$user_id}
                          and req.status in (2,5)
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. menghitung berapa kali skrip dieksekusi

  2. Bagaimana Anda membatasi grup dengan baris dalam kueri mysql?

  3. Apa cara terbaik untuk mengimplementasikan tabel antrian pengiriman pesan di mysql

  4. GROUP BY interval stempel waktu yang tumpang tindih permintaan MySQL

  5. bagaimana cara menulis Ekspresi Reguler di kueri pemilihan MySQL?