Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL chọn với truy vấn phụ và LIMIT

Khi bạn sử dụng WHERE điều kiện trên bảng bên phải của LEFT JOIN (Outer Join), nó thực sự trở thành một INNER JOIN , bởi vì WHERE mệnh đề cần phải phù hợp với các điều kiện. Đó là lý do tại sao bạn chỉ nhận được các trường hợp c.active = 1 .

Bạn cần chuyển WHERE điều kiện để LEFT JOIN .. ON .. AND .. điều kiện:

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. Cách thực thi định dạng cột MySQL tùy chỉnh

  2. Các bảng và mô hình động trong Laravel 5

  3. Cách tạo một báo cáo theo đầu vào của người dùng trong netbean gui

  4. Đếm hàng cho đến khi giá trị trong cột thay đổi mysql

  5. MySQL UNIX_TIMESTAMP dành cho PostgreSQL