私はPrestashopを使用しており、各注文の現在の状態と登録された最後の注文履歴状態を比較するデータの整合性を確認する必要があります。注文履歴と最後の注文状態の不一致のフィルタ注文
注文表:
╔══════════╦═══════════════╦
║ id_order ║ current_state ║
╠══════════╬═══════════════╬
║ 1 ║ 3 ║
║ 2 ║ 1 ║
║ 3 ║ 2 ║
║ 4 ║ 1 ║
╚══════════╩═══════════════╩
order_history表:
╔══════════════════╦══════════╦════════════════╦═════════════════════╦
║ id_order_history ║ id_order ║ id_order_state ║ date_add ║
╠══════════════════╬══════════╬════════════════╬═════════════════════╬
║ 1 ║ 1 ║ 1 ║ 2016-08-01 11:00:00 ║
║ 2 ║ 2 ║ 1 ║ 2016-08-02 12:00:00 ║
║ 3 ║ 1 ║ 3 ║ 2016-08-03 13:00:00 ║
║ 4 ║ 3 ║ 1 ║ 2016-08-04 14:00:00 ║
║ 5 ║ 3 ║ 2 ║ 2016-08-05 15:00:00 ║
║ 6 ║ 2 ║ 3 ║ 2016-08-06 16:00:00 ║
║ 7 ║ 4 ║ 1 ║ 2016-08-07 17:00:00 ║
╚══════════════════╩══════════╩════════════════╩═════════════════════╩
(自発的逃したテーブルは、注文の状態の名前を与えることである:1 = "有料"、 2 =「確認」、3 =「出荷」...)
通常、current_stateの順序は(私のサンプルでは、注文番号2、current_state = 1であるが、最後の履歴更新のid_order_stateは2である)、そして私が明らかにしたいことである。
私は、各ラストオーダー状態更新取得するには、この操作を行います。
SELECT o.id_order, o.current_state, h.id_order_state, max(h.date_add)
FROM orders o, order_history h
WHERE o.id_order = h.id_order
GROUP BY o.id_order, o.current_state, h.id_order_state
ORDER BY o.id_order ASC
しかし、まず、私は、各オーダーの最後の更新の状態のみをしたいので、それは十分ではありません。
╔══════════╦═══════════════╦════════════════╦═════════════════════╗
║ id_order ║ current_state ║ id_order_state ║ max(h.date_add) ║
╠══════════╬═══════════════╬════════════════╬═════════════════════╣
║ 1 ║ 3 ║ 3 ║ 2016-08-03 13:00:00 ║
║ 2 ║ 1 ║ 3 ║ 2016-08-06 16:00:00 ║
║ 3 ║ 2 ║ 2 ║ 2016-08-05 15:00:00 ║
║ 4 ║ 1 ║ 1 ║ 2016-08-07 17:00:00 ║
╚══════════╩═══════════════╩════════════════╩═════════════════════╝
をと第2に、WHERE current_state <> id_order_state
のフィルタを追加して、破損したデータのみを表示します(注文番号2など)。
╔══════════╦═══════════════╦════════════════╦═════════════════════╗
║ id_order ║ current_state ║ id_order_state ║ max(h.date_add) ║
╠══════════╬═══════════════╬════════════════╬═════════════════════╣
║ 2 ║ 1 ║ 3 ║ 2016-08-06 16:00:00 ║
╚══════════╩═══════════════╩════════════════╩═════════════════════╝
完全なSQL要求でこれが可能ですか?
私はあなたの質問が何であるか不明です。あなたは2つの非常に異なることが必要なようです。 –
prestashopのどのバージョンですか? – sarcom
@ GordonLinoff:「2番目の」出力を得るためのSQLリクエストを探していますが、プロセスロジックで最も正確であると「最初に」言及しました。 – Klemart3D