Rumah  >  Soal Jawab  >  teks badan

SQL meninggalkan gabungan menggunakan klausa mana untuk menapis medan kosong

<p>Saya mempunyai dua jadual, satu ialah jadual Pengguna dan satu lagi ialah jadual Token. Saya ingin menyertai kedua-dua jadual ini untuk melihat pengguna yang telah mengesahkan token mereka dan yang tidak. Terdapat kunci asing dalam jadual token yang mengandungi ID pengguna. </p> <p>Sekarang saya menggunakan gabungan kiri untuk menyertai ID pengguna dan cuba menyemak sama ada tiada pengesahan. Pernyataan pertanyaan adalah seperti berikut: </p> <pre class="brush:php;toolbar:false;">PILIH nama, disahkan DARIPADA pengguna LEFT JOIN token ON users.ID = token.UID WHERE disahkan = palsu</pre> <p>Andaikan saya mempunyai dua jadual berikut:</p> <pre class="brush:php;toolbar:false;">ID | 0 | 1 | 2 | 3 |. John</pre> <p>Kemudian, jadual token adalah seperti berikut: </p> <pre class="brush:php;toolbar:false;">ID | 0 |. 1 | 1 |. 2 | 2 |. 3 |. <p>Seperti yang anda lihat, Joe tidak mempunyai rekod dalam jadual kedua. Saya mahu menyertai kedua-dua jadual ini dan walaupun Joe tidak mempunyai rekod dalam jadual kedua, saya mahu ia dianggap palsu/null. Apabila saya menjalankan pertanyaan untuk mencari pengguna yang tidak disahkan, hanya 2 entri data dikembalikan. </p> <pre class="brush:php;toolbar:false;">Nama Disahkan Sally | Dave |. 0</pra> <p>Jika saya mengalih keluar klausa where, hasilnya adalah seperti berikut:</p> <pre class="brush:php;toolbar:false;">Nama Disahkan Sally | Dave | John | Joe |. NULL</pre> <p>Seperti yang anda lihat, Joe mempunyai nilai nol di bahagian bawah, tetapi saya mahu ia dianggap sebagai tidak sah. Bagaimanakah saya harus menulis pertanyaan untuk mendapatkan data berikut:</p> <pre class="brush:php;toolbar:false;">Nama Disahkan Sally | Dave | Joe |. NULL</pre> <p>Atau hanya pernyataan pertanyaan berikut, hasilnya ialah 3. Hasil pertanyaan semasa ialah 2. </p> <pre class="brush:php;toolbar:false;">SELECT count(*) DARIPADA pengguna LEFT JOIN token ON users.ID = tokens.UID WHERE disahkan = palsu</pre> <p><br /></p>
P粉511985082P粉511985082433 hari yang lalu507

membalas semua(1)saya akan balas

  • P粉322106755

    P粉3221067552023-08-14 13:23:45

    WHERE verified = false 或 verified is null

    balas
    0
  • Batalbalas