1

我有 2 个模型显示和预订。一个节目有很多预订。每个预订都有一个 start_date 和 end_date。我想找到 i) 没有预订或 ii) 预订不与时间间隔 [开始,结束] 重叠的节目。到目前为止,我有:

Show.joins("LEFT JOIN bookings ON bookings.show_id = shows.id").where("bookings.start_date > ? OR bookings.end_date < ?, end, start)

但它不会返回没有预订的节目。如何在查询结果中包含没有预订的节目?

4

1 回答 1

3

尝试这个:

Show.joins("LEFT JOIN bookings ON bookings.show_id = shows.id").where("bookings.id IS NULL OR bookings.start_date > ? OR bookings.end_date < ?", end, start)
于 2012-11-05T23:04:23.793 回答