mysql LEFT JOIN -- Пример SQL и QueryBuilder запроса
Primary tabs
Задача
Получить все продажи (из таблицы Sale), в которых нет Возвратов(строк из связаннос с Sale таблицей Rejection(по ключу sale_id)).
SQL
Можно с помощью LEFT JOIN с условием
SELECT * FROM `sale` left join `rejection` using(`id`) where sale_id is null;
PHP
Если вы используете в своём проекте Doctrine, с помощью QueryBuilder написать запрос с LEFT JOIN можно так:
/** * Получит продажи, в которых нет Rejection-ов * * @return array | Sale[] */ public function getNoRejection(): array { return $this->getEntityManager() ->createQueryBuilder() ->select('s') ->from(Sale::class, 's') ->leftJoin(Rejection::class, 'r', 'with', "r.sale = s.id") ->where('r.sale is null') ->orderBy('s.id', 'ASC') ->getQuery() ->getResult(); }
Источники
- Log in to post comments
- 6032 reads
vedro-compota
Mon, 06/25/2018 - 15:28
Permalink
В PHP можно использовать
где именно? Это не PHP. а что-то написанное на PHP?
_____________
матфак вгу и остальная классика =)
melisa
Mon, 06/25/2018 - 17:58
Permalink
это объект
Это объект для работы с БД в Doctrine.
Добавила пометку в статье.