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

SQL / Doctrine:Sự cố kết hợp trái

Điều kiện của bạn phải là một phần của điều khoản LEFT JOIN ... ON.

$q = $this->createQuery('c')
    ->leftJoin('c.stJob j WITH j.expires_at > ? AND j.is_activated = 1 AND j.is_public = 1', date('Y-m-d h:i:s', time()))
    ->addOrderBy('c.name');

Đặt các điều kiện trong ON mệnh đề (trái ngược với WHERE ) chỉ ra rằng chúng áp dụng cụ thể cho JOIN . Nếu không có hàng nào đáp ứng các điều kiện đó, thì không có liên kết nào - và đó chỉ là những gì bạn muốn trong trường hợp này. Đưa chúng vào WHERE cho biết rằng kết quả các hàng phải thỏa mãn các điều kiện đó. Và rõ ràng nếu không có tham gia, bạn không thể đáp ứng bất kỳ điều kiện về j bảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn trạng thái từ nhiều bảng, với đầu vào biến đổi

  2. di chuyển từ postgres sang mysql gây ra lỗi lạ Mysql2 ::Lỗi:Máy chủ MySQL đã biến mất

  3. Liên tục phát trực tuyến âm thanh ngẫu nhiên từ cơ sở dữ liệu

  4. Giới thiệu một cột mới cho tổng tháng trước

  5. Cách SET SQL_BIG_SELECTS =1 trong câu lệnh Tham gia Laravel