【发布时间】:2017-09-09 14:19:35
【问题描述】:
我有两张桌子,一张是订单,另一张是产品。产品类型是出租的,因此物品被发送出租,然后返回。现在,我希望当用户搜索一个日期范围时,比如说 2017 年 6 月 13 日到 2017 年 6 月 21 日,那么只有那些在这些日期范围之间没有任何 orderell 条目的产品应该出现。 如果在 6 月 14 日至 17 日或 6 月 21 日至 23 日或 6 月 11 日至 6 月 15 日预订的产品 a 不应出现。我只希望所选范围不与蚂蚁订单日期冲突。表格顺序有字段(这里只需要提到的字段) 订单表
id product_id from_date to_date
1 12 2017/04/12 2017/04/21
2 12 2017/05/2 2017/05/8
3 32 2016/12/1 2016/12/7
产品表
id name etc etc
12 p1 23 12
32 p23 22 32
我正在使用 mysql 和 php 在 mysql 查询中(由于某种原因无法显示完整的查询) 有 join bw product 和 orders 表,查询中的 this where 条件
WHERE "2017-04-13"NOT BETWEEN `orders`.`from_date` AND `orders`.`to_date` AND "2017-04-21"NOT BETWEEN `orders`.`from_date` AND `orders`.`to_date`
正如我所说,这些表之间存在连接。订单表中还有一些其他较旧的订单,因此连接实际上是造成问题的原因。尝试理解“1 - 连接发生::: 获取 product_id 匹配的订单表中的所有行”然后“2- 条件发生在这些范围之间的行将被消除,但不属于此范围的那些范围不会被过滤那么我们还有那个产品”
【问题讨论】:
-
你能分享你的尝试吗?
-
这可以在 mysql 或 php 中实现,非常容易,您是否进行了一些研究,您尝试发布您的代码,我们可以找到错误,否则从尝试和编写一些代码开始。跨度>
-
@Gert 我在我的问题中包含了我的查询的一部分
-
@JayBlanchard 我更新了问题