私はmySQLの問題に直面しています:これらの列を含むmySQLテーブルを取得しました。これはすべての注文と注文のすべての状態を格納します:
id_order_history / id_employee / id_order / id_order_state / date_add
特定の*id_order_state*にある*id_order*のリストを取得したいのですが(たとえば10)、この特定の状態の後に状態が変化する注文を取得したくないので、生後7日未満の注文..。
これが私がこれを行うためにどのように考えたかです:
最初に、注文と日付のリストを取得するためのクエリ:
SELECT id_order, date
FROM '._DB_PREFIX_.'ps_order_history,
WHERE TO_DAYS(NOW()) - TO_DAYS(date_add) <= 7
AND id_order_state = 10
次に、最新の状態のない注文のみを取得するループ:
$query = ' SELECT id_order, date
FROM '._DB_PREFIX_.'ps_order_history,
WHERE ';
foreach ( $listAbove, $item) {
$query =+ '
(( date > $item['date'])
AND ( id_order = $item['id']))
';
}
$orderlist = Db::getInstance()->ExecuteS($query);
それは本当に最適化されていません、私はたった1つのクエリでそれを行うことができると確信していますが、実際には方法がわかりません。
これをどのようにきれいにするかについての手がかりはありますか?