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

Rails bao gồm truy vấn với các điều kiện không trả lại tất cả kết quả từ bảng bên trái

Nếu bạn thêm WHERE điều kiện trên các cột của bên phải bảng sau LEFT JOIN , bạn buộc nó hoạt động giống như một INNER JOIN .

Giải pháp

Kéo biểu thức lên thành điều kiện đến LEFT JOIN .
Theo trang hướng dẫn bạn trích dẫn bản thân bạn :

Và:

Bạn có thể đã đọc sai câu đó.

Cái này nên làm những gì bạn muốn:

Post.joins('LEFT OUTER JOIN images ON images.post_id = posts.id
                                  AND images.service_name = $$acme$$')

Tôi không phải là chuyên gia về Ruby, nhưng lấy được từ hướng dẫn tại đây .
Không chắc chắn làm thế nào để thoát khỏi các dấu ngoặc kép, vì vậy tôi đã chuyển sang báo giá đô la thay thế.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tổng hợp các nhóm nút / cạnh được kết nối

  2. Sử dụng QT Designer để tạo TableView cho cơ sở dữ liệu Postgres

  3. Cách thay đổi người dùng thành Superuser trong PostgreSQL

  4. Trả về giá trị cột trước UPDATE chỉ bằng SQL

  5. Django cache.set () gây ra lỗi khóa trùng lặp