1

新しいレコードを TABLE 1 に挿入するときに、別のテーブルの値に基づいて DATETIME に値を割り当てたいのですが、すべてをまとめるのに苦労しています。

TABLE1 には interval_id 列と submit_date 列 (およびその他多数) があります。

TABLE2 には interval_id、begin_time、および end_time があります

例:

  • DATETIME が 2012-10-24 07:29:41 の INSERT ステートメント
  • TIMEだけ剥がして
  • 両方のテーブルで interval_id を参照します
  • TIME が T2.begin_time と T2.end_time (この場合は 06:00:00 と 07:59:59) の間のどこにあるかを調べます。
  • 決定したら、対応する値を T1.interval_id に割り当てます。

ここのところ:

INSERT INTO `TABLE1` (null, now())
WHERE
  DATE(submit_date) = curdate()
  AND TIME(submit_date)

----ここで TIME を開始時間列データと終了時間列データと比較するためのコーディングについてはよくわかりません----

完全な挿入ステートメント:

    $sql        = "INSERT INTO `summary` VALUES (null,'$user_id','$task_id',NOW(),'$tcompleted_id','$minutes_id','$hourinterval_id')
                   SELECT NOW(), hourinterval_id 
                   FROM `hour_interval` H
                   WHERE TIME(NOW()) BETWEEN H.start_hour AND H.end_hour LIMIT 1"  
4

1 に答える 1

1

SELECTステートメントの結果を挿入できます。

INSERT INTO `TABLE1`(curdate, interval_id)
SELECT now(), inteval_id FROM `TABLE2` t2 
WHERE TIME(now()) BETWEEN t2.start_time AND t2.end_time LIMIT 1
于 2012-10-26T03:28:29.713 に答える