DAL: Bestellungen mit mind. 2 Line-Items abfragen

Hallo,

wie kann ich nur Bestellungen mit mindestens 2 Lineitems erhalten? Mir fällt nicht ein, wie das gehen könnte - ich wollte daher mal hier nachfragen.

Mein aktueller Code sieht wie folgt aus:

    $criteria = new Criteria();
    $criteria->setLimit(5);
    $criteria->getAssociation("lineItems");

    $data = $this->orderRepository->search($criteria, Context::createDefaultContext());

Vielen Dank im voraus!

Du kannst über reguläres MySql dir die Order Ids raussuchen

SELECT COUNT(oli.order_id) AS line_item_count, o.id
FROM `order` o
LEFT JOIN order_line_item oli ON oli.order_id=o.id
GROUP BY o.id
HAVING line_item_count >= 2

und dann die Bestellungen anhand der Ids laden:

$stmt = $this->connection->executeQuery($sql);
$orderIds = $stmt->fetchAll(\PDO::FETCH_ASSOC);

$criteria = new Criteria(array_column($orderIds, 'id'));

$orders = $this->orderRepository->search($criteria, Context::createDefaultContext());
1 „Gefällt mir“