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
- 6833 reads
vedro-compota
Mon, 06/25/2018 - 15:28
Permalink
В PHP можно использовать
где именно? Это не PHP. а что-то написанное на PHP?
_____________
матфак вгу и остальная классика =)
melisa
Mon, 06/25/2018 - 17:58
Permalink
это объект
Это объект для работы с БД в Doctrine.
Добавила пометку в статье.