如何在 CodeIgniter 中选择免费房间进行预订 - 两张桌子?
Posted
技术标签:
【中文标题】如何在 CodeIgniter 中选择免费房间进行预订 - 两张桌子?【英文标题】:How to select free rooms for reservations in CodeIgniter - two tables? 【发布时间】:2016-05-18 20:36:46 【问题描述】:我想在 CodeIgniter 中选择 dateStart 和 dateEnd 之间的空闲房间。
我有 2 张桌子 - 房间和预订。
我目前的型号代码:
$this->db->select('rooms.*');
$this->db->join('reservations', 'rooms.ID = reservations.RoomID', 'left outer');
$this->db->where('rooms.Size >=', $PeopleNumber);
$this->db->where('reservations.DateStart <=', $DateEnd);
$this->db->where('reservations.DateEnd >=', $DateStart);
$this->db->group_by('rooms.Size');
$query = $this->db->get('rooms');
我已经检查过这个问题:mysql Looking for free rooms in reservation system
但我不知道如何在 CodeIgniter 中进行多选。
我的 SQL 小提琴:http://sqlfiddle.com/#!9/c1f95/8
【问题讨论】:
【参考方案1】:好的,我解决了这个问题:
$this->db->where('`ID` NOT IN (SELECT `RoomID` FROM `reservations` WHERE `DateStart` < "' .$DateEnd. '" AND `DateEnd` > "' .$DateStart. '")', NULL, FALSE);
【讨论】:
以上是关于如何在 CodeIgniter 中选择免费房间进行预订 - 两张桌子?的主要内容,如果未能解决你的问题,请参考以下文章
codeigniter 中是不是有子查询库?或者我如何在codeigniter 3中进行子查询?
CodeIgniter PHP - 如何在使用“select *”时选择在连接中选择哪个 ID
如何选择具有多个选择值的数据作为 where 子句? - Ajax Codeigniter
如何在codeigniter中将ajax选择的依赖下拉选项传递给mysql数据库