SQL/PHP:从select查询更新结果
我一直想让它永远工作,但我似乎无法让它工作。我需要更新我的tours表中的一列,如果tours_reservations表中的预订少于8个,那么下周的旅游将开始。我有一个select语句,它给出了我想要的结果(需要更新的巡更),但我不知道如何在update语句中处理这个结果。以下是我的选择声明:SQL/PHP:从select查询更新结果,php,mysql,codeigniter,count,having-clause,Php,Mysql,Codeigniter,Count,Having Clause,我一直想让它永远工作,但我似乎无法让它工作。我需要更新我的tours表中的一列,如果tours_reservations表中的预订少于8个,那么下周的旅游将开始。我有一个select语句,它给出了我想要的结果(需要更新的巡更),但我不知道如何在update语句中处理这个结果。以下是我的选择声明: $date = new DateTime("+ $starting days"); $day = $date->format('Y-m-d'); $this->db->
$date = new DateTime("+ $starting days");
$day = $date->format('Y-m-d');
$this->db->query("SELECT t.t_id, t.name, t.status, COUNT( r.reservation_id ) AS c
FROM tours t
JOIN tours_reservations r ON t.t_id = r.tour_id
WHERE DAY = '$day'
GROUP BY t.t_id
HAVING COUNT( c ) <=8");
$date=newdatetime(“+$start days”);
$day=$date->format('Y-m-d');
$this->db->query(“选择t.t\U id、t.name、t.status、计数(r.reservation\U id)作为c
来自图尔斯t
在t.t\U id=r.tour\U id上加入旅游预订
其中DAY=“$DAY”
按t.t\U id分组
假设您的初始查询是正确的,则使用COUNT(c)
$query = $this->db->query("SELECT t.t_id, t.name, t.status, COUNT( r.reservation_id ) AS c
FROM tours t
JOIN tours_reservations r ON t.t_id = r.tour_id
WHERE DAY = ?
GROUP BY t.t_id
HAVING COUNT( c ) <=8", array($day));
foreach ($query->result() as $row)
{
$this->db->query("UPDATE tours SET status = 'cancelled' WHERE t_id = ? ", array($row->t_id));
}
$query=$this->db->query(“选择t.t\u id、t.name、t.status、COUNT(r.reservation\u id)作为c
来自图尔斯t
在t.t\U id=r.tour\U id上加入旅游预订
哪天=?
按t.t\U id分组
有了计数(c),你需要在上面的查询中循环结果,并在循环本身中写入更新查询。嗨,我该怎么做?你能给我指出正确的方向吗?非常感谢!这就成功了。由于声誉不足,你不能投票,但你可以+10000。