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

MySQL pilih dengan sub-query dan LIMIT

Saat Anda menggunakan WHERE kondisi pada tabel sisi kanan dari LEFT JOIN (Gabung Luar), secara efektif menjadi INNER JOIN , karena WHERE klausa harus sesuai dengan kondisi. Itulah mengapa Anda hanya mendapatkan kasus di mana c.active = 1 .

Anda perlu menggeser WHERE syaratnya LEFT JOIN .. ON .. AND .. kondisi:

SELECT
   p.id, c.id as category_id 
FROM
   (SELECT id FROM products p WHERE p.id > 6319055 ORDER BY id LIMIT 1000) prods 
LEFT JOIN 
   products p ON p.id = prods.id 
LEFT JOIN 
   categories c ON c.id = p.category_id 
                   AND c.active = 1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Baris dihitung tanpa perbedaan

  2. PHP SQL, kueri hanya mengembalikan satu baris data

  3. cara menangani kueri pembaruan ukuran besar di mysql dengan laravel

  4. codeIgniter menggunakan mysql_real_escape_string() sebagai gantinya. masalah koneksi database

  5. Apakah koneksi database di kelas ini dapat digunakan kembali?