-1

当日のすべてのレストランのすべての注文を選択する mysql クエリを作成するにはどうすればよいですか?

一部のレストランは24:00以降に閉店する場合があります。

だから私は3つのテーブルを持っています:

  1. restaurantsいくつかのフィールド [ id, ]
  2. ordersいくつかのフィールド [ id, resid, orderdate,]
  3. hours一部のフィールド [ id, resid, day, open, close] はday0 ~ 6 の数値で、開始と終了は ~ の間の時間です00:00:0023:59:59

ありがとうございました

これは私が必要とするものです

SELECT b.*
FROM restaurants a, orders b, hours c
WHERE a.id=b.resid
AND a.id=c.resid

---- ここでは、レストランの現在の営業日の注文を選択するコードが必要ですが、レストランが 24:00 以降に閉店する場合、現在の営業日には前の暦日の注文が含まれる場合があります。

4

3 に答える 3

0

解決策は

   " SELECT b.*".
   " FROM orders b, rests a, times c ".
   " WHERE a.id=b.resid ".
   " AND a.id=c.resid ".
   " AND (".
        "( c.day=dayofweek(subdate(current_date, 1))-1 " .
        " AND c.close < c.open " .
        " AND c.close> TIME(NOW())" .
        " AND b.orderdate>= CONCAT(subdate(current_date, 1),' ',c.open) )" .
        " OR " .
        "( c.day=dayofweek(current_date)-1 " .
        " AND c.close >= c.open " .
        " AND c.close> TIME(NOW())" .
        " AND b.orderdate>= CONCAT(current_date,' ',c.open) )" .
        " OR " .
        "( c.day=dayofweek(current_date)-1 " .
        " AND c.close < c.open " .
        " AND CONCAT(ADDDATE(CURRENT_DATE, 1),' ',c.close)> TIME(NOW())" . 
        " AND b.orderdate>= CONCAT(current_date,' ',c.open) )" .
        ")";
于 2013-09-02T11:03:52.990 に答える
0

これは、あなたの望むことですか?

select o.*
from orders o
where o.orderdate = curdate();

そうでない場合は、質問を修正して、あなたが望むものをよりよく説明できますか?

于 2013-09-01T15:10:55.810 に答える