zend framework объединяет 3 таблицы

У меня 3 таблицы (заказ, продукт, order_item). order меня была дата. В order_item у меня есть product_id и order_id . Мне нужно выбрать все продукты с заказами, созданными в текущем месяце. Это мой выбор:

 $select = $this->select() ->setIntegrityCheck(false) ->from(array('o' => 'order')) ->join(array('oi' => 'order_item'), 'o.id = oi.order_id', array('quantity')) ->joinLeft(array('p' => 'product'), 'p.id = oi.product_id', array('id', 'pbv', 'name')) ->where('MONTH(o.date) = MONTH(CURDATE())'); 

Но когда у меня нет заказов, результат пуст. И я всегда должен иметь все продукты. Извините за мой английский. Благодарю.

Это было очень сложно. Правильный SQL:

 USE lyf; SELECT * FROM `order` AS o LEFT JOIN order_item AS oi ON oi.order_id = o.id RIGHT JOIN product AS p ON oi.product_id = p.id WHERE IF(o.`date` IS NOT NULL, MONTH(o.`date`) = MONTH(NOW()), 1) = 1 

Вам нужно либо переключить joinLeft на joinRight, либо сначала поместить свою таблицу продуктов в запрос.