SELECT orders.* FROM orders JOIN order_rows
ON orders.id = order_rows.order_id
WHERE order_rows.quant <> order_rows.quant_fulfilled
GROUP BY orders.id
ORDER BY orders.id DESC
これは、対応する order_row エントリがない行を含めるために必要です (これは、まだアイテムが含まれていない注文になります)。ON または WHERE 句に追加することでこれを行う方法が必要だと思われますか?
ある時点で空の注文は数個しかないため、これに対する最良の回答がパフォーマンスを大幅に低下させる場合は、別のクエリを使用します。しかし、私はそれらをこのクエリに含めたいと思っていたので、残りのものと一緒に orders.id でソートされます。アイテムのない 1 ~ 3 の注文を含めるためだけに、クエリ時間を 2 倍にしたくないだけです。
私はMySQLを使用しています。アドバイスをよろしくお願いします。