使用join更新语句和两个where条件

时间:2012-11-14 15:51:09

标签: php mysql

这就是我需要更新的地方:

  • 使用用户编辑的TIME值
  • 更新我的汇总表TIME列
  • 比较新的TIME,使用我的摘要表中的ID和hour_interval表来连接表
  • 找到新TIME所在的正确行ID(有两列有开始和结束时间;例如:开始列 - 04:00:00结束列06:00:00)
  • 使用摘要表ID
  • 使用正确的时间间隔行ID更新摘要表

代码执行,但不更新间隔ID。建议?

UPDATE summary S  
JOIN hour_interval H  
ON S.hourinterval_id = H.hourinterval_id 
SET S.hourinterval_id = H.hourinterval_id 
WHERE ('$new_time' BETWEEN H.start_hour AND H.end_hour) 
AND summary_id = '$summary_id'"


hourinterval_id start_hour  end_hour
1               4:00:00 5:59:59
2               6:00:00 7:59:59
3               8:00:00 9:59:59
4              10:00:00 11:59:59
5              12:00:00 13:59:59
6              14:00:00 15:59:59
7              16:00:00 17:59:59
8              18:00:00 19:59:59

1 个答案:

答案 0 :(得分:1)

试试这个:

UPDATE summary S  
JOIN hour_interval H  
ON '$new_time' BETWEEN H.start_hour AND H.end_hour
SET S.hourinterval_id = H.hourinterval_id 
WHERE summary_id = '$summary_id'"