0
このクエリの目的は、まだ作成されていない出荷を持たないテーブルの注文からレコードを表示することです。これをSQLで行う方法を次に示します。結合されたテーブルがnullであるDoctrineの左結合は結果を示します
SELECT *
FROM orders
LEFT JOIN orders_shipments shipments ON orders.trx_id = shipments.trx_id
WHERE shipments.shipment_id IS NULL
AND orders.purchase_date IS NOT NULL
AND orders.fulfillment_channel = 'MFN';
次のクエリは0の結果を示します。次のとおりです。
$qb = $this->createQueryBuilder('orders');
$qb->select('orders, shipments')
->leftjoin('orders.shipments', 'shipments')
->Where('shipments.id IS NULL')
->ANDWhere('orders.purchaseDate IS NOT NULL')
->ANDWhere('orders.fulfillmentChannel = :a')->setParameter('a', 'MFN');;
$results = $qb->getQuery()
->getResult();
return $results;
結果を表示していますか?それはなぜそれを修正するのですか?
、ANDWhereが間違って大文字にし、多分問題はないthatsの。 –
'echo $ qb-> getQuery();' – goto
-_dqlの出力は何ですか?「OrderBundle \ Entity \ Ordersからの出荷を選択してください」LEFT JOIN orders.shipments配送先wherements.ids IS NULLおよびorders.purchaseDate IS NOT NULLおよびorders.fulfillmentChannel =:a " – user1029829